CataRT ReadMe


README for the cataRT data-driven concatenative sound synthesis system in real time based on unit selection from large databases for Max/MSP/FTM

copyright 2005-2006 Diemo Schwarz, Real-Time Music Interaction Team (IMTR), Ircam--Centre Pompidou

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

See file GPL-license.pat for further informations on licensing terms.



The concatenative real-time sound synthesis system cataRT plays grains (also called units) from a large corpus of segmented and descriptor-analysed sounds according to proximity to a target position in the descriptor space. This can be seen as a content-based extension to granular synthesis providing direct access to specific sound characteristics.

cataRT is implemented in MaxMSP using the FTM and Gabor libraries. Segmentation and MPEG-7 descriptors are loaded from text or SDIF files, or analysed on-the-fly.




  • bang init
  • check that Max Scheduler in Overdrive is on (Scheduler in Audio Interrupt (a.k.a. takeover) doesn't need to be on anymore).
  • DSP on, augment volume (lower left corner of the main patch)

Importing Sounds

  • choose segmentation mode and grain size, or use defaults
  • click import (soundfile) to choose one or drag one or more sound files on either stack of modules (corpus1 or corpus2)
  • you can drop any number of files, or whole directories whose contents will be imported (but not recursively)
  • if you have opened the corresponding catart.lcd, you can see the file's units coming in during analysis
  • after import, reselect the x/y descriptors to refresh the ranges in catart.lcd


  • open catart.lcd for your corpus by double-click (see also catart.lcd.doc.png)
  • choose descriptors for the x- and y-axis from the menus, or use one of the presets to the right
  • move around in lcd, units closest to mouse are played
  • drag right/left to increase random-radius
  • click to freeze position, ctrl-click to unfreeze (watch the "freeze" checkbox)
  • experiment with different descriptors on x-/y-/colour-axis
  • zoom in by changing the min/max underneath the descriptor menu
  • try out different trigger modes (except quant and seq that are shaky):
    • bow triggers closest unit each time you move the mouse
    • fence plays a unit whenever a different unit becomes the closest one (named in homage to clattering a stick along a garden fence)
    • beat mode triggers units via a metronome (controlled by grain rate)
    • chain mode triggers a new unit whenever the previous unit has finished playing
    • quant is a quantized metronome, but non functional for the moment
    • seq will be the sequencer and external triggering/selection mode
    • cont continues playing grains in order
  • use the common granular synthesis parameters to the left
    • xfade and attack/release alternatively control the grain envelope

Saving/Loading Corpora

  • a whole corpus (list of sound files, descriptors, and unit data) is saved by clicking export as four text files (.ds.txt, .sf.txt, .sy.txt, .ud.txt), you can choose any of these or just the base name (keep it short, since Max's file dialogs are still stuck with 31 char names).


  • workingset, despite its name, doesn't work at the moment
  • In the segmentation parameters, Max Length for yin or amplitude segmentation has no effect
  • there are some hidden subpatches that are still experimental, so don't expect anything if you can't keep yourself from trying them out =-)



  • so much!
Personal tools