- Audio
- Compose
Canon
Purpose
Section titled “Purpose”Canon takes a stream of note voices and copies it into several layers that move at related tempo ratios. Each layer plays the same material at a different speed or phase, so a single line becomes a web of interlocking parts. It is a fast way to build dense polyphony or Nancarrow-style tempo canons from one source.
Wire your note source into Input 0 and a timeline clock into Input 1. Set Voicecount, choose a Mode, and dial the per-layer Ratio values. The out voices carry every layer at once and drive a polyphonic instrument. Use the input mode to decide whether Canon follows your live notes or pools them first.
Inputs and outputs
Section titled “Inputs and outputs”- Input 0:
voicesnote voices to layer. Required. - Input 1:
timelinetimeline clock. Required. - Output 0:
outemits all canon layers as note voices.
Controls
Section titled “Controls”- Mode: layer relationship.
raw,mensural,phasing,hocket,crab, orstrum. - Inputmode:
snapshot,hold,soak, orswarmfor how live notes are gathered. - Voicecount: how many layers are generated, up to eight.
- Ratio1 to Ratio8: the tempo ratio for each layer.
- Gate, Density, Velocityscale: note length, how many notes fire, and level.
- Spread: pitch offset between layers in semitones.
- Offsetbeats and Phasejitter: timing offset and randomized phase between layers.
- Humanize: timing and velocity looseness.
- Soak and Inertia: input pool fill rate and stability.
- Foldrange with Low and High: fold layered pitches back into a note range.
- Sourcewalk and Seed: source stepping behavior and repeatable randomness.
- More voices and wider ratios make denser, more complex textures.
crabruns a layer in reverse andhocketsplits notes across layers for interlocking patterns.- Use Foldrange with Low and High to keep fast high layers from drifting out of a usable register.
Inputs
-
voicesrow required -
timelinerow
Outputs
-
outrow
Parameters
Section titled “Parameters” Voicecount (Voicecount) Int
op('canon').par.Voicecount - Default:
4- Range:
- 1 to 8
Gate (Gate) Float
op('canon').par.Gate - Default:
0.18- Range:
- 0 to 1
Density (Density) Float
op('canon').par.Density - Default:
1- Range:
- 0 to 1
Velocityscale (Velocityscale) Float
op('canon').par.Velocityscale - Default:
0.9- Range:
- 0 to 2
Spread (Spread) Float
op('canon').par.Spread - Default:
7- Range:
- -36 to 36
Offsetbeats (Offsetbeats) Float
op('canon').par.Offsetbeats - Default:
0.125- Range:
- -8 to 8
Phasejitter (Phasejitter) Float
op('canon').par.Phasejitter - Default:
0- Range:
- 0 to 1
Humanize (Humanize) Float
op('canon').par.Humanize - Default:
0- Range:
- 0 to 1
Soak (Soak) Float
op('canon').par.Soak - Default:
0.55- Range:
- 0 to 1
Inertia (Inertia) Float
op('canon').par.Inertia - Default:
0.15- Range:
- 0 to 1
Ratio1 (Ratio1) Float
op('canon').par.Ratio1 - Default:
1- Range:
- -16 to 16
Ratio2 (Ratio2) Float
op('canon').par.Ratio2 - Default:
1.25- Range:
- -16 to 16
Ratio3 (Ratio3) Float
op('canon').par.Ratio3 - Default:
1.5- Range:
- -16 to 16
Ratio4 (Ratio4) Float
op('canon').par.Ratio4 - Default:
1.6667- Range:
- -16 to 16
Ratio5 (Ratio5) Float
op('canon').par.Ratio5 - Default:
0.75- Range:
- -16 to 16
Ratio6 (Ratio6) Float
op('canon').par.Ratio6 - Default:
2- Range:
- -16 to 16
Ratio7 (Ratio7) Float
op('canon').par.Ratio7 - Default:
2.5- Range:
- -16 to 16
Ratio8 (Ratio8) Float
op('canon').par.Ratio8 - Default:
3- Range:
- -16 to 16
Sourcewalk (Sourcewalk) Toggle
op('canon').par.Sourcewalk - Default:
On- Options:
- Off, On
Foldrange (Foldrange) Toggle
op('canon').par.Foldrange - Default:
On- Options:
- Off, On
Low (Low) Float
op('canon').par.Low - Default:
36- Range:
- 0 to 127
High (High) Float
op('canon').par.High - Default:
96- Range:
- 0 to 127
Seed (Seed) Int
op('canon').par.Seed - Default:
23- Range:
- -100000 to 100000