Luigi Marino1, Giovanni Costantini1,2
1 Department of Electronic Engineering, University of Rome “Tor Vergata”, Rome, Italy
2 IDASC Institute of Acoustics and Sensors “Orso Mario Corbino”, Rome, Italy

RandyMa is a tool oriented to real time performance realized in MaxMSP with the add of some new externals developed in C. It offers a whole range of possibilities, spacing from real time buffer recording and management, basic granular synthesis, complex algorithmic techniques, FX bank and mixer. RandyMa is composed by three patches which can be used singularly too: MBR, Randy, and a mixer. In the page Musical Research you can find some examples of interactive music, tape music, and installations realized by this tool.


Fig.1: MBR

MBR (Fig.1) takes care of the buffers. Through a java script, it allows the allocation by only one click of up to 2000 buffers ready for recording. It is possible to switch the buffer manually or automate the operation by the use of amplitude threshold, so that the performer can play several sounds and have them automatically recorded on separated buffers with no silence (eg. a percussionist could play 10 hits in a second and have them automatically recorded on 10 different buffers.) The way Max deals with buffers can be very useful associated to this patch because the buffer pool recorded in real time is accessible by all the patches open in the Max environment.

Fig. 2: Randy

MBR is linked to Randy (Fig. 2), a patch that has at its basic level a granular synthesis algorithm. All the recorded buffers are analyzed by MBR in phase of recording and Randy uses some of the informations to know how many buffers are available and their length, to create the appropriate envelopes and to work with a shared sound pool etc. Randy can randomize several parameters of the events generated, such as their length, density, buffer used, envelope shape, spatialization, buffer start point, pitch etc. Each randomization has been studied carefully to find the best and most compact way to generate the best perceptive results. All the most important parameters use their appropriate distribution (uniform, beta, exponential or Cauchy), and it is always possible to interpolate between the uniform distribution and the one selected as the best for that parameter*. Randy is polyphonic and there is no fixed limit to the voices the user can allocate; using the poly~ object, their number depends on the CPU. Since this patch aims to control randomness, and variety often means different and unpredictable requests for the CPU, some measures have been taken to avoid CPU overflow. The easiest is a parameter called “CPU limit”: every time a new voice is allocated there is a CPU use check, and if the percentage is more than the specified value the voice is not allocated. Randy has three very particular random LFOs assignable to all the parameters, allowing the user to even assign a slow random movement to the limits of randomness within the events are generated. The LFOs offer a great variety of movements. The patch has a FX bank consisting of reverb, AM and overdrive. The output is quadraphonic, but easily adjustable to stereo directly on Randy.

Fig. 3: Mixer

The last part of RandyMa is a practical mixer (Fig. 3) that, using the powerful Max matrix~, allows the user to send the output from Randy virtually everywhere, making easy patchbay operations on an external soundcard or the connection with other patches in the Max environment. 12 input channels (received through send~ object) can be assigned to 10 physical outputs premaster volume, or/and grouped on 4 buses, and then sent to 10 outputs with the first 4 considered as master outputs and controllable from the interface. The master outputs can also be grouped as mono or stereo, with a reduction factor. The mixer has a recorder with 12 channels organized in 3 bus, mostly thought to record simultaneously up to 3 quadraphonic channels coming from three instances of Randy.

*The Max externals for the interpolation between different distributions and the one used to constraint the values in the appropriate range are developed in C by the author, and are freely downloadable with the .maxhelp file from the download section below.

Download from Luigi Marino website



  1. Luigi Marino, Giovanni Costantini, Un sistema stocastico real-time per la composizione algoritmica orientato all’interazione live con un esecutore, Festival Internazionale di Musica Elettroacustica del Conservatorio di Musica “S. Cecilia”, Emufest 2008.
  2. Charles Dodge and Thomas A. Jerse, Computer Music, 2nd edition, Belmont: Schirmer, pp. 342-356, 1997.
  3. Curtis Roads, Microsound, Cambridge: MIT Press, 2004.


I commenti sono chiusi