Controller tracks are a group of track types that output a control value instead of a note. The group includes the following track types:
Type | MIDI message | P1 | P2 |
---|---|---|---|
Key Aftertouch | Polyphonic Key Pressure | track note | step value |
Control | Control Change | track note | step value |
Patch | Program Change | step value | N/A |
Channel Aftertouch | Channel Pressure | step value | N/A |
Wheel | Pitch Bend Change | step value | N/A |
A controller track's steps are interpreted as data values for the corresponding MIDI message. Each step causes a MIDI message to be sent to the output device, except when a step has the same value as the preceding step, in which case no message is sent for the later step, thereby avoiding what would otherwise be a duplicate message. The steps are interpreted as unsigned or signed data depending on the context. To achieve smooth control changes, it may be necessary to use a relatively small Quant, but don't make it smaller than necessary, otherwise you risk exceeding the bandwidth limitations of the output device.
The track velocity property has a different meaning for controller tracks than it does for note tracks: instead of offsetting the note velocities, it offsets the control values. In other words, the track's velocity offset (if any) is added to the track's step values to compute the output data values.