Clusters is a polyphonic MIDI particle generator meant to provide rhythmic or atmospheric accompaniment. Clusters receives MIDI input from a MIDI keyboard controller, or other MIDI input device, and outputs a generated sequence of MIDI notes in response. The generated sequence are random notes that play using a Euclidean Rhythm.
To set up Clusters, connect your MIDI input device (keyboard or anything that outputs MIDI) to Clusters on the MIDI Channel set by the MIDI IN knob (default is channel 1). Then create two instrument tracks in your host and insert a MIDI sound source (synth or other) on each track. Set one track to receive MIDI only from the MIDI Channel set by the MIDI IN knob (default is channel 1) and the other track to receive MIDI only from the MIDI Channel set by the MIDI GEN knob (default is channel 2). The first track will be your “direct” sound, and the second track will play the MIDI generated by Clusters. The host transport must be playing for Clusters to generate MIDI. Each time a note is played by the user, Clusters creates a sequence and plays it back.
SHIFT: Press the SHIFT KEY to access the “Expert Mode” page. Press again to go back to the main page. Press-and-hold the SHIFT KEY to see knob values.
PADS: The pads labled “Voice” are indicators that show which voices are currently playing and how many notes remain in the current sequence.
USER PADS: USER 1 and USER 2 are for storing user presets. To store a preset, press-and-hold SHIFT and while holding, press either of the USER pads. This will store the current settings in that pad. To recall a user preset, simply press the user pad.
PRESET + and PRESET -: These pads cycle through the factory presets.
AS PLAYED / QUANTIZED: This pad selects between Quantize mode and As Played mode. In Quantize mode, all notes generated by Clusters will be played back quantized to the host clock. In As Played mode, the generated notes are offset from the beat by the same amount the original note was.
RANDOM / STATIC: This pad selects between RANDOM and STATIC modes. RANDOM mode selects a different length Euclidean sequence and different clock division for each input note played. STATIC mode uses the same length Euclidean sequence and clock division for every generated sequence.
KEY: Sets the root note of the generated sequence.
SCALE: Sets the scale for the generated sequence.
RANGE: Sets the range of the random notes in the generated sequence, from 0 semitones to 24 semitones (2 octaes).
OFFSET: Applies an pitch offset to the generated sequence from -12 semitones (-1 octave) to +12 semitones (+1 octave).
Press SHIFT to access EXPERT MODE.
KEY, SCALE, RANGE, and OFFSET have the same fuction as on the main page.
HUMANIZE: Adds timing jitter and velocity variation to the notes of the generated sequence.
VEL OFFSET: Adds or subtracts from the velocity of the generated sequence. The base velocity of the generated sequence is the same as the input note that triggers it.
NOTE LEN: The length of the generated notes, in note subdivisions.
POLYPHONY: Sets the number of active voices, from 1 to 10. Fewer voices should use less CPU.
MIDI IN: The MIDI channel that Clusters listens to to receive MIDI input. This should be set to the same channel as your MIDI keyboard controller.
QUANTIZE / AS PLAYED: Same as the pad on the main page.
The knobs on the bottom row will vary depending on whether you are in RANDOM mode or STATIC mode.
RANDOM MODE knobs.
MIN STEPS: Sets the minimum length of the generated sequence in steps.
MAX STEPS: Sets the maximum length of the generated sequence in steps.
MIN BEATS: Sets the minimum number of notes per generated sequence.
MIN SUBDIV: Sets the shortest note division for the generated sequence.
MAX SUBDIV: Sets the longest note division for the generated sequence.
STATIC MODE knobs.
STEPS: Sets the length of the generated sequence in steps.
BEATS: Sets the number of notes to be played in the generated sequence.
ROTATE: Rotates the generated Euclidean sequence in steps.
SUBDIVISION: Sets the note division of the generated sequence.
DECAY: The generated sequence can either fade in (below 12:00), fade out (above 12:00), or play at a constant volume (12:00) depending on how this knob is set.
MIDI THRU: This selects whether the MIDI input arriving on the channel set by MIDI IN will be passed along to the output or blocked.
MIDI GEN: This sets the MIDI channel that the generated sequence will be output on.
STATIC / RANDOM: same as on the main page.
This script was inspired by software used by Olafur Arnalds. See: https://youtu.be/vAj1SwPKfqc
To learn more about Euclidean Rhythms, visit: http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf