View on GitHub

rtbuf

real-time buffers

Download this project as a .zip file Download this project as a tar.gz file

rtbuf is BSD licensed ANSI C for realtime signal processing.

Possible applications include audio and video applications, games and experimental setups.

Current audience is developers. Status : alpha.

It seems that these last years most programming action happens in high level programming languages which rely on garbage collectors to free memory. The problem of a GC is that it induces latency because while the program is stopped collecting free memory it stops other processing so real-time applications are not possible with most modern programming languages. Multi-processor safe and real-time garbage collectors are not open source and very expensive pieces of software.

A possible solution to handle real time computation on a garbage collected platform is to offload real-time computations to a C server running rtbuf which has no garbage collector and is highly portable.

See the project page on Github : https://github.com/rtbuf/rtbuf

Compilation from sources

./autogen.sh && ./configure && make

Installation

By default rtbuf gets installed into $HOME/.rtbuf/ prefix.

make install

Documentation

Rtbuf Procedures Reference

Rtbuf Type Reference

Rtbuf C API

Rtbuf Command line interface

Rtbuf GTK interface

Libraries

rtbuf already contains several libraries :

Procedures

Each library contains several named procedures.

Each procedure can be seen as a real time buffer object class.

A procedure has three methods :

See the Rtbuf procedure reference.

Real time buffers

From a library procedure you can instanciate real time buffers.

A real time buffer (rtbuf) has inputs and outputs. A buffer output can be connected to another buffer’s input.

Once you have created and connected buffers together you can start computation.

Contributing

Fork and send pull requests at https://github.com/rtbuf/rtbuf

Only ISC (BSD) licensed code will be accepted.

Authors