an open-source digital signal processing and sound synthesis language
about · links · contact


rtcmix~ is also available for the Pd visual programming language, ported by Joel Matthys
RTcmix is a complete sound synthesis and signal processing language, including a robust scheduler and large set of pre-compiled "instruments". The rtcmix~ object completely encapsulates RTcmix within the Max/MSP real-time music environment, extending the capabilities of Max/MSP.

Download and Install

Current versions are available for Max 5 (and above) for Mac OS X and Windows XP. Older versions are available in the archives.

Mac OS X Directions

This archive will unpack into a single "rtcmix~_1.92_osx_max6/" folder. Inside this folder are two sub-folders, "RTcmix/" and "RTcmix-help-2.8/" You will need to place them somewhere on the Max5 search path. We recommend putting the "RTcmix/" folder in
   /Applications/Max5/Cycling '74/msp-externals/
and the "RTcmix-help-2.8/" folder in
   /Applications/Max5/Cycling '74/msp-help/
Move the entire "RTcmix/" and "RTcmix-help/" folders intact -- do not take the rtcmix.mxo object or rtcmix~.maxhelp patches out of the folders!

NOTE: Be sure to remove any existing "RTcmix/" folders, "RTcmix-help/" folders, or rtcmix~ objects from the search path.

Windows XP Directions

Download the above archive file. This should leave a folder, "rtcmix~_1.7_wxp_max5/" containing the following items:
  • the rtcmix~.mxe Max5 external object
  • a subfolder, "RTcmix-help/"
Place the rtcmix~.mxe external object into the Max5 externals folder, usually located here:
   c:\Program Files\Cycling '74\Max 5.0\msp-externals\
The "RTcmix-help/" folder should be moved intact (i.e. do not take the rtcmix~.maxhelp patch out of it!) to the Max5 help directory, often located here:
   c:\Program Files\Cycling '74\Max 5.0\max-help\
Start up Max5, instantiate an rtcmix~ object, option-click for the help patches, and off you go!

Source Code

Zip archives of the RTcmix source code and Xcode project files for the Mac OSX rtcmix~ object and supportng libraries.


  • The rtcmix~ object can load, parse and run existing RTcmix scorefiles. A set of internal buffers and buffer-editing routines are included with the object.

  • A large set of mathematical and data-manipulation/storage routines are available with the rtcmix~ object, including the ability to define and use arbitrary new operations.

  • rtcmix~ enables the Max/MSP user to write procedural code for particular algorithmic operations. For example, a valid RTcmix script executing in the rtcmix~ object might be something like:
  • Approximately 120 existing RTcmix synthesis and signal-processing instruments are currently accessible in the rtcmix~ object, including a set of FFT/PVOC-based spectral manipulation tools, real-time Linear Prediction Coding (LPC) analysis/resynthesis, and most of the Synthesis ToolKit (STK) physical models created by Perry Cook and Gary Scavone.

  • 	for (time = 0; time < 14.9; time = time + 0.35) {
    		USE_AN_INSTRUMENT(time, p1, p2, p3...)
  • In a similar fashion, the rtcmix~ object can schedule Max/MSP messages and events. The following rtcmix~ script will produce 100 'bangs' randomly spaced in a 7-second interval:
    	for (i = 0; i < 100; i = i+1) {
    		bangtime = irand(0.0, 7.0)
  • rtcmix~ provides an easy framework for linkage between Max/MSP and arbitrary C/C++ functions and objects, including separately-compiled mach-o C/C++ code.

Final Words on This Web Page

RTcmix was originally written by Brad Garton and Dave Topper, adding real-time capabilities to the cmix music-programming language developed by Paul Lansky. John Gibson, Doug Scott (and others) added significant extensions to the package.

The rtcmix~ object was written by Brad Garton with much advice and assistance from Dan Trueman and Luke DuBois (Dan wrote the internal buffer script-editing code). Joshua Kit Clayton was an invaluable resource, as always. Thanks guys!

I hope this may be useful for others; I'm having a blast with it. Let me know what you think!

Brad Garton