MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf ·...

23
MuBu for Max/MSP IMTR IRCAM – Centre Pompidou Norbert Schnell Riccardo Borghesi 20/10/2010

Transcript of MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf ·...

Page 1: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

MuBu for Max/MSPIMTR IRCAM – Centre Pompidou

Norbert SchnellRiccardo Borghesi

20/10/2010

Page 2: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

MotivationCreate a solid and open framework for the experimentation with recorded data streams of multiple representations in Max/MSP- audio samples- audio descriptors- gesture and motion capture data- spectral audio representations- symbolic representations- segmentation and annotations ... what else?

Page 3: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Converging Applications

• Analysis/re-synthesis (sound, music and speech)

• Corpus based granular synthesis (textures)

• Following and recognition (gestures/sounds and scores)

• Computer aided improvisation

• ...

Page 4: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Context

• Créations IRCAM & Forum

• Recherche musicale

• Prototyping of interactive real-time applications

Page 5: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Relaxed Real-Time Analysis/Synthesis

• Real-time analysis, recognition and classification- structured sound and gesture data- “emerging symbolics”

• Content based audio processing and rendering- synthesis based on offline or real-time analysis- “post-sampling” and “re-performance”

Page 6: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

MuBu Container Functionalities

• Store heterogeneous synchronous data streams

• File import/export

• Visualization and editing

• Optimized congruent access to shared data

• Handling of dynamic configurations (data and references)

Page 7: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

MuBuContainer

real-time/offline analysis

real-time synthesis

A

S

file import

F G

graphical editing

Data Models

Page 8: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

MuBu Container Design

• Simple and easy to maintain

• Minimizing dependencies on other libraries

• Thread-safe and lock-free congruent data access

Page 9: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Container Data Structure

• Array of buffers being arrays of tracks

track 1

...

track 2

track 3

track T

. . .

buffer 1

buffer 2

buffer 3

buffer B

Page 10: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Track Data Structure

• Array of 2-dim matrix data (optional time-tags and matrix rows)

• Array of (non-matrix) “extra” data (currently labels only)

• Track meta-data

parameters

info dictionary

matrix column names

...time-tags (64-bit float)

...

...

...

variable number of matrix rows (int)

extra data (symbols or other)

N x M matrix data (32-bit float)

Page 11: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Modularity and Thread-Safeness

• Distinction of configuration and real-time access- thread-locked access to container (using pthread r/w locks)

- lock-free access to track data (using compare-and-swap)

• Track implemented as immutable data structure→ fixed capacity→ re-configuration by copying data into a new track

• Container manages dynamic track configuration- locked callbacks to modules that refer to a container- simple garbage collector (by reference count)

Page 12: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

File Format Support

• SDIF import and export*

• Plain text file import and export

• MIDI standard file import

• MusicXML import

• Save/load data with Max patcher (for small amounts of data)

* ... what else?

* features to be implemented

Page 13: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Visualization and Editing

• Based on the Juce framework

• Abstract data interface (also implemented for FTM data structures)

• Set of editor/visualization components- waveform (single or multi-channel)

- break-point function (single or also multi-channel)

- sonogram (of sampled or time-tagged data)

- markers (with duration and offset)

- textual tables/matrices- piano roll (or simplified staffs)

- traces (waveform or bpf with color and thickness)

• Control components (scroll bar, rulers, toolbar, tabs, buffer chooser, etc.)

Page 14: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data
Page 15: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Editor Control Components (1/2)

Page 16: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Editor Control Components (2/2)

Page 17: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Generic Data Access

• Generic data container mubu ... basic multi-buffer container

imubu ... container with graphical user interface

• Reference to a specific track mubu.track ... optimized access to track data

* Generic record and play externals

* JavaScript interface

Page 18: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Analysis

• FTM & Co prototype patch - loundness- power spectrum and spectral moments- MEL bands & MFCC coefs- YIN- loudness based segmentation

* PSOLA markers

* Partials and harmonics

* SuperVP

Page 19: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Synthesis

• ZsaZsa overlap-add engine- concatenative synthesis- granular synthesis

* PSOLA

* FFT-1 based additive synthesis

* SuperVP

→ “spectral/hybrid concatenative synthesis”

Page 20: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Data Models

• KD-tree based k-nearest neighbors

* N-Grams?

* Factor oracle?

* ... what else?

Page 21: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Current Release

• Beta version of first set of externals- mubu ... container

- imubu ... container with graphical interface

- mubu.track ... optimized access to track data

- mubu.knn ... k-nearest neighbors

- mubu.concat~ ... concatenative synthesis

- mubu.granular~ ... granular synthesis

Page 22: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Future Developments

• Finalize SDIF export

• Integrate analysis and segmentation (real-time/offline)

• Integrate spectral analysis/synthesis (real-time/offline)

- PSOLA (ZsaZsa synthesis)

- additive (FFT-1 synthesis)

- phase vocoder (SuperVP and simple)

• Implement further data models

Page 23: MuBu for Max/MSP - IRCAMimtr.ircam.fr/imtr/images/MuBu-project-presentation-2010-10-20.pdf · Motivation Create a solid and open framework for the experimentation with recorded data

Links

• MuBu on the IMTR web pages→ http://imtr.ircam.fr/imtr/MuBu

• MuBu beta-test mailing list (subscription required)

→ http://listes.ircam.fr/wws/info/mubu-beta