Recomposer, a device built with Cycling '74 / Ableton's Max for Live, creates a new mix (scene) composed of modified parts (clips) drawn from other mixes in the same Live set.

Analysis and generation of note content occurs within an algorithmic music engine running as a separate process, a Squeak Smalltalk image. The music engine is controlled from Live via the Recomposer device, which collects note data from the Live set, forwards commands to and from Squeak via the network protocal OSC, and injects the new notes back into the Live set.

The algorithmic music engine detects voice and segment note groupings within the selected clips of the Live set. The notes within each segment are weighted in terms of rhythmic displacements, dominant keys, and scale/modes of individual musical phrases.

Some music engine processes, such as genetic algorithms, are implemented in linked C++ modules to take advantage of multiprocessor hardware.

Transformations for the sake of variety, as well as optimizations in terms of well-formedness, are applied at different stages of the resulting Live clips and scenes. The musical domain is limited to short sections (1-4 bars) of duple meter, composed of roughly the following parts: bass, lead, comp, pad, and drums.

Each row, called a "scene" in Live, contains the parts that comprise a particular mix. Each part is called a "clip". Here a clip has been selected for each role (bass, lead, comp, pad, drums) from one of three different scenes.

The clips to be recombined can be selected manually in Live. Alternately, collection of clips from randomly selected scenes can be triggered by a button on the Recomposer device.

The initial recomposition of clips into a new scene is triggered by hitting one of the buttons marked A-E. Each of these applies a different combination of syncopation, pitch inversion, and part retriggering before analyzing the resulting parts in terms of voices, segments, key, and scale mode. Those analyses are then used to transpose the new parts into the nearest common harmony.


Another Max for Live device, called "Predictor", stores a rhythmically-weighted pitch transition table constructed from the calculations behind each newly generated scene.

This device elaborates notes played on the keyboard during playback of the latest results of the Recomposer device, based on the distribution of scale steps across the rhythmic patterns of the generated parts.


The next Max for Live device, called "Recycler", triggers audio loops in 4, 8, 16, 32, etc chunks of even duration.

It is intended for processing loops in duple meter that have been cut to one, two or four bars.

LFO's are used to modulate the starting points of the chunks for slow phasing effects.