Besides juxtaposition, another important method of combining tracks is modulation, in which a track alters the behavior of another track. The track that does the modulating is called the modulator or source, whereas the track that's being modulated is called the target or sink. Modulations are created via the modulations bar or the Track menu's Modulation command. There are many types of modulation, and they vary in terms of the targets they support, and how they interpret step values, as shown below.
Modulation types
Type | Targets | Effect | Step |
---|---|---|---|
Mute | All | Mutes or unmutes target | Boolean; non-zero value mutes target |
Note | Note tracks, scale modulators, chord modulators | Offsets note or tone | Signed offset in semitones or scale tones |
Velocity | All track types except Tempo and Modulator | Offsets note velocity or controller value | Signed MIDI data offset |
Duration | Note tracks only | Offsets note duration | Signed offset in ticks |
Range | Note tracks only | Offsets range start | Signed offset in semitones |
Position | All | Rotates step array | Signed rotation in steps |
Tempo | Tempo tracks only | Scales tempo | Signed fractional tempo change |
Scale | Note tracks only | Adds note to current scale | Signed note offset in semitones |
Chord | Note tracks only | Adds scale tone to current chord | Signed zero-based scale tone index |
Index | Note tracks only | Picks a scale or chord tone | Signed zero-based scale or chord tone index |
Voicing | Note tracks only | Drops or raises a scale or chord tone | Signed one-based voice index |
Offset | All track types except Tempo | Offsets playback timing | Offset in ticks; unsigned for Note or Controller, signed for Modulator |
Modulation relationships
The relationship between source and target tracks can be any of the following:
Relationship | Meaning |
---|---|
One to one | A single source modulating a single target |
One to many | A single source modulating multiple targets |
Many to one | Multiple sources modulating a single target |
Many to many | Multiple sources modulating multiple targets |
In the above relationships, the modulations don't necessarily have to be all of the same type. For example a note track could have its mute state modulated by one source track, and its note modulated by a different source track.
Nested modulation
Nested relationships are also possible, in other words a modulator can modulate a modulator, though there are limits on this, as explained below. The only thing that's definitely not allowed is a track modulating itself, either directly, or indirectly via a loop, as this would lead to infinite recursion. The user interface tries to prevent self-modulation, but if it occurs you'll get the error message "Modulation exceeded the maximum number of recursions." The maximum modulation depth is 32 levels, however only mute, position, and offset modulation fully support nesting. The modulation types that fully support nesting can form chains, for example:
mute modulator → position modulator → note modulator → note track
Modulation rules
The table below summarizes the supported modulation behavior. For each track type, it tells you what types of modulation the track can be targeted by. Use the Check Modulations command to verify that your modulations comply with these rules.
Target track type | Supported modulation types |
---|---|
Note | All except Tempo |
Key Aftertouch, Control, Patch, Channel Aftertouch, Wheel, Internal | Mute, Velocity, Position, Offset |
Tempo | Mute, Position, Tempo |
Modulator | Mute, Position, Offset; also Note but only if target is a Scale or Chord modulator |