The MuBu multi-buffer is a container for sound and motion data. The idea behind the project is to provide a structured memory for the real-time processing of recorded sound and action together with interfaces and operators as a set of complementary Max externals.
The buffers of a MuBu container associate multiple tracks of aligned data to complex data structures such as:
- segmented audio data with audio descriptors and annotations
- annotated motion capture data
- aligned audio and motion capture data
Each track of a MuBu buffer represents a regularly sampled data stream or a sequence of time-tagged events such as audio samples, audio descriptors, motion capture data, markers, segments, and musical events.
Apart from its SDIF-based native file format, a MuBu container can import data from various file formats including: common audio file formats (AIFF, RIFF, Ogg/Vorbis, etc.), SDIF, text, MIDI standard files.
MuBu for Max is distributed as set of core externals providing functions for visualizing, manipulating, and recording the MuBu data structures:
- mubu … multi-buffer container
- imubu … container with graphical user interface
- mubu.track … optimized access to a track
- mubu.record, mubu.record~ … recording data streams and sequences
- mubu.process … processing data streams
Further externals are dedicated to data modeling and sound synthesis:
- mubu.knn … k-NN unit selection using a kD-Tree
- mubu.concat~ … segment-based synthesis
- mubu.granular~ … granular synthesis
In addition, the distribution includes en experimental set of stream processing and analysis operators implemented as PiPo* modules:
- pipo.mel … extract MEL frequency bands from an audio stream
- pipo.mfcc … extract MEL frequency cepstrum coefficients from an audio stream
- pipo.psy … extract pitch synchronous YIN-based markers and from an audio stream
- pipo.mvavrg, pipo.median … moving average and median filters on arbitrary streams
- pipo.slice, pipo.fft, pipo.bands, pipo.dct … low-level modules calculating audio frames, fast Fourier-transform, spectral bands, and decreet cosine transform
These PiPo modules can be used as operators with the mubu.process externals as well as with the Max externals pipo and pipo~ that are distributed with MuBu for Max.
* The PiPo plugin interface for processing objects is a plugin API for modules processing multi-dimensional data streams (see also http://imtr.ircam.fr/imtr/PiPo). The formalization of PiPo data streams is very close to the that of MuBu tracks and the SDIF file format.