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. Current versions are available for Max 5 (and above) for Mac OS X. Older versions are available in the archives.

Installion Instructions for Max 7

The archive will unpack to a folder titled "RTcmix-2.00". Move this entire folder intact to the "/Users/Shared/Max 7/Library" folder. Restart Max/MSP and the new [rtcmix~] object should show in the Max console as:
   RTcmix music language, v. 2.00 (RTcmix-maxmsp-4.2.1)

NOTE: Be sure to remove any of your older RTcmix or RTcmix-help folders from this folder:

   /Users/Shared/Max 7/Library

Installion Instructions for Max 5 and 6

This archive will unpack into a single "RTcmix-2.00/" folder. Inside this folder are two sub-folders, "RTcmix/" and "RTcmix-help-2.9/" You will need to place them somewhere on the Max5 search path. We recommend putting the "RTcmix/" folder in:
   /Applications/Max 6/Cycling '74/msp-externals/
and the "RTcmix-help-2.9/" 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.


  • 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