petra for max

petra is a is a collection of external audio objects neatly packed into a Package for Max by Cycling ’74. It is used for polyphonic granulation of pre-recorded sounds. The package is loosely based on the principle of asynchronous granular synthesis (outlined in Curtis Roads’ book Microsound). The objects are made for sample precision granulation of both single- and dual-channel audio files.

In addition, petra contains an audio object for live input granulation. It makes use of a circular buffer and an adjustable, and optionally randomised, delay control over the duration of the entire buffer.

All objects share the following controls, which consist of an upper and lower range, from within which a random value is generated for each grain:

  • start position within the selected sample buffer~ object
  • grain length
  • grain pitch
  • panorama position per grain
  • gain per grain

petra is open source and compatible with both Windows and Mac OS versions of Max. The entire source code of the Package can be found on my GitHub page.

Objects overview

cm.buffercloud~ A polyphonic granulator object for granulation of prerecorded sounds using a windowing function loaded into a buffer~ object.

cm.indexcloud~ A polyphonic granulator object for granulation of prerecorded sounds using a windowing function calculated inside the external object itself. The windowing functions can be accessed with an index number supplied as an argument or with a message.

cm.gausscloud~ A polyphonic granulator object for granulation of prerecorded sounds using a gaussian windowing function calculated inside the external itself. The shape of the gaussian window can be freely manipulated in real time with the min/max alpha value object inlets.

cm.livecloud~ A polyphonic granulator object that records incoming audio into an internal circular buffer. Any signal can be granulated in real time with adjustable delay. The object uses a windowing function loaded into a buffer~ object.