Modulations

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

TypeTargetsEffectStep
MuteAllMutes or unmutes targetBoolean; non-zero value mutes target
NoteNote tracks, scale modulators, chord modulatorsOffsets note or toneSigned offset in semitones or scale tones
VelocityAll track types except Tempo and ModulatorOffsets note velocity or controller valueSigned MIDI data offset
DurationNote tracks onlyOffsets note durationSigned offset in ticks
RangeNote tracks onlyOffsets range startSigned offset in semitones
PositionAllRotates step arraySigned rotation in steps
TempoTempo tracks onlyScales tempoSigned fractional tempo change
ScaleNote tracks onlyAdds note to current scaleSigned note offset in semitones
ChordNote tracks onlyAdds scale tone to current chordSigned zero-based scale tone index
IndexNote tracks onlyPicks a scale or chord toneSigned zero-based scale or chord tone index
VoicingNote tracks onlyDrops or raises a scale or chord toneSigned one-based voice index
OffsetAll track types except TempoOffsets playback timingOffset 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:

RelationshipMeaning
One to oneA single source modulating a single target
One to manyA single source modulating multiple targets
Many to oneMultiple sources modulating a single target
Many to manyMultiple 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 typeSupported modulation types
NoteAll except Tempo
Key Aftertouch, Control, Patch, Channel Aftertouch, Wheel, InternalMute, Velocity, Position, Offset
TempoMute, Position, Tempo
ModulatorMute, Position, Offset; also Note but only if target is a Scale or Chord modulator