RTMMM - a system for Realtime Mixing of Audio Streams


The RTMMM AudioStream library is a set of classes functions and shared services designed for the modular implementation of Audio applications featuring multiple simultaneous streams of audio.

The library is divided in kernel services and user modules. The final application is made of modules that use services of the kernel. The user may want to build an object in which case must be knowledgeable of the kernel internals.

The modularity is the key for the interconnections of tile-like object that together implement the desired application. The interconnectivity is designed in such a way to allow multiple tasks to communicate even if they reside in different processors. Multiple computers and network communications are not incompatible with the current philosophy of the system. The support for this will eventually appear as part of a future release.

The basic skeleton of an application is that of a pipeline of AudioStream objects. Each of them implement an elaborating function and together produce the result. An example is the connection of a CD digital input object to an Equalizer object then to a MPEG compression object and then to an AUDIO output. This system will allow directly recording of CD data while being able to equalize the data on the fly.

The connection design allows also for live insertion and removal of object in the chain to allow for scope-like object to be attached in order to be able to view the music while being able to later remove it when unnecessary. An other key characteristic of the design is the stream size adaptation. If you connect an object which produces 44Khz 16bit stereo to a player that plays at 48Khz mono the intrinsic mechanisms provide for the interpolation and bitness adjusting. Ulaw, different endiannesses, unsigned, and other variations of music data are not supported as streamable data, and must therefore be converted by the reading object.

At the user module level the concept of a stream concentrator have been implemented. It provides the functionality of an audio mixer allowing for multiple streams to use the same output.


Email Filippo Sartori

Email Norbert Heller


© 1997 - Web Page Design by norbert heller