This docking window lets you edit your mappings. Mappings can be inserted, revised, deleted, copied, cut, pasted, and reordered via dragging. Mappings can also be sorted by left-clicking the appropriate item within the column header. To sort in descending order, press the Shift key while left-clicking.
The mappings are displayed in a grid control. Each mapping consists of input and output event properties, an output range, and a target track. The input properties include the input event type (note on, control, etc.), the input MIDI channel, and the note or control number if appropriate. Input properties can be entered manually, or learned from the MIDI input.
The output properties start with the output event type, which may be either a MIDI message (note on, control, etc.) or a target property. If the output event is a MIDI message, the mapping is a translation, in which case the output MIDI channel and the note/control number are also relevant. Otherwise, the mapping targets a property, in which case the output MIDI channel is irrelevant, the output control may not matter either, and a target track may be required.
To map a MIDI message to the same property in multiple tracks, create multiple mappings, one for each target track. It's easiest to do this via copy and paste: create a mapping for one of the tracks first, and when it's set up correctly, clone it as many times as needed, and finally edit the copies to target different tracks.
The output range (start value and end value) allow the input MIDI data to be shifted or scaled to any integer range. If the start is bigger than the end, the control direction is reversed, in which case turning the knob up makes the value smaller.
Mapping columns
Input Event | The type of input MIDI event being mapped; these are all MIDI channel messages. |
Input Event | The MIDI channel on which to listen for the input event. |
Input Control | The parameter that further specifies the input event. For Note On and Key Aftertouch events, it's the note number, for Control events it's the controller number, and for other input event types it's ignored. |
Output Event | The type of output event that's being mapped to. For translations, these are MIDI channel messages, otherwise they're properties. |
Output Channel | The MIDI channel of the output event. This is only applicable for translations. |
Output Control | The parameter associated with the output event. This is only applicable for certain event types; see below. |
Range Start | The starting value of the output range. |
Range End | The ending value of the output range. |
Track | The target track. This is only applicable when mapping to track properties. |
Output event types
Translations | |||
---|---|---|---|
Output Event | Output Control | Track | Comment |
Note On | Note number | N/A | Output channel matters |
Key Aftertouch | Note number | N/A | Output channel matters |
Control | Controller number | N/A | Output channel matters |
Patch | N/A | N/A | Output channel matters |
Channel Aftertouch | N/A | N/A | Output channel matters |
Wheel | N/A | N/A | Output channel matters |
Mappings | |||
Type | N/A | Required | Enumeration |
Channel | N/A | Required | Zero-based, from 0 to 15 |
Note | N/A | Required | In semitones |
Length | N/A | Required | In steps |
Quant | N/A | Required | In ticks |
Offset | N/A | Required | Signed offset in ticks |
Swing | N/A | Required | Signed offset in ticks |
Velocity | N/A | Required | Signed offset in velocity |
Duration | N/A | Required | Signed offset in ticks |
Range Type | N/A | Required | Enumeration |
Range Start | N/A | Required | In semitones |
Mute | N/A | Required | Non-zero to mute track |
Step | Step Index | Required | Event data is step value; see step mapping |
Tie | Step Index | Required | Non-zero to tie step; see tie mapping |
Presets | N/A | N/A | Event data is preset index |
Parts | Part Index | N/A | Non-zero to activate part |
Play | N/A | N/A | Non-zero to play |
Pause | N/A | N/A | Non-zero to pause |
Record | N/A | N/A | Non-zero to record |
Loop | N/A | N/A | Non-zero to loop |
Tempo | N/A | N/A | Fractional multiplier; see tempo mapping |
Overlaps | N/A | N/A | Sets output channel's note overlap method, to Merge if non-zero, otherwise to Split |
Duplicates | N/A | N/A | Sets output channel's duplicate notes method, to Prevent if non-zero, otherwise to Allow |
Learning mappings
The application also supports MIDI learn mode, i.e. the input messages can be learned from the MIDI input device. To do this, select a mapping in the Mapping window, and then enable learn mode via Tools/MIDI Learn, or via the keyboard shortcut Ctrl+Shift+L, or via the Mapping window's context menu. The background color of the selected mapping changes to green, indicating that this mapping will be learned. Now move the associated knob on the MIDI input device, and the mapping's input properties will snap to the appropriate values for that knob. To learn other mappings, select each mapping one at a time and move its associated knob. To learn multiple mappings at once, select them all and move the knob that you want to assign to all of them. After all mappings have been learned, disable MIDI learn mode.
Context menu
Insert | Inserts a new mapping at the current position |
Delete | Deletes the selected mappings |
Cut | Deletes the selected mappings after copying them to the clipboard |
Copy | Copies the selected mappings to the clipboard |
Paste | Inserts the contents of the mapping clipboard at the current position |
Select All | Selects all mappings |
Learn | Toggles MIDI Learn mode |
Map Tracks | Creates mappings for the selected tracks |
Tempo mapping
Controlling tempo is a special case, because unlike other mapping targets, tempo is exponential rather than linear. For example, suppose the normal tempo is 100, in which case half-time is 50 and double-time is 200. The values 50, 100, and 200 are clearly not linearly spaced. Tempo mapping handles this complication for you, so that your control behaves as if tempo were linear, even though it isn't. A pitch bend wheel works similarly.
To specify the range of tempo change your control covers, adjust the mapping's Range Start and Range End properties. Some useful tempo mapping setups are given below.
Range Start | Range End | Tempo Range | Comment |
---|---|---|---|
0 | 127 | 100% to 200% | Normal to double-time, the default setup |
−127 | 0 | 50% to 100% | Half-time to normal |
−127 | 127 | 50% to 200% | Half-time to double-time |
−63 | 63 | 71% to 141% | Approximately half the previous range, from the square root of ½ to the square root of 2 |
Tempo mapping produces a multiplier, which the base tempo is multiplied by. The tempo may also multiplied by a tempo track if one exists, along with any tempo modulators the tempo track may have. The product of these multiplications is the net tempo. During playback, the net tempo is shown in the status bar.
Position mapping
Position mapping lets you control the rotation of one or more target tracks. Tracks don't have a rotation property, so it's necessary to use a two-stage workaround that consists of position modulation and step mapping. You want to create a one-step position modulator track that targets the track(s) to be rotated, and then create a mapping that targets your position modulator track's one and only step. Do as follows:
Rotating multiple tracks with a single control makes more sense if the target tracks are all the same length, but that's not a requirement. If the above procedure isn't working, make sure the mapping's Output Control is zero; it's specifying which step to control, and step indices are zero-based. If you show your position modulator track in the velocities pane or the step values bar, you should see its step value changing as you move your control. When in doubt, use the MIDI input bar to verify that you're receiving the expected MIDI message, and if not, check your input device.
Step mapping
Step mapping means assigning a MIDI message to control the value of a step within a track. The mapping's Output Event must be Step, and its Track property must specify the target track. In a step mapping, the Output Control property is a zero-based index that specifies which step to access. The valid range of a step index is from zero to the target track's length minus one. For example, if the target track is four steps long, to access its last step, set Output Control to three. If the step index is out of range, the mapping has no effect. Because steps serve many purposes, there are many possible step mapping scenarios, only some of which are presented below.
Position mapping | This is already explained above. |
Mapping a single control to the same track property in many tracks | Normally you must create one mapping for each track you want to control, but this is potentially cumbersome when controlling many tracks. If the track property you want to control has a modulation type associated with it—as is the case for note, offset, velocity, duration, and range start—it may be easier to modulate the target tracks with a one-step source track, and then create a single mapping that targets your source track's step. This is similar to the position mapping procedure explained above, except you'll select a different modulation type. |
Independently controlling each of the step values in a track | By mapping a different control to each step of a note track, you can use a control surface to create rhythmic patterns. Your controls determine not only the pattern, but also the note velocities. To emulate the step buttons on a drum machine, use switches instead of knobs or sliders, toggling between 0 and 100 for example. To create melodies, map controls to the steps of a note or index modulator. You can also alter the contents of scales or chords by mapping controls to their steps. Controller tracks can also be interesting step mapping targets. |
Tie mapping
Within note tracks, a step can be tied, so that it extends the preceding note instead of triggering a new note. You can assign a MIDI message to control whether a track step is tied or not. Set the mapping's Output Event to Tie, its Track property to the target track, and its Output Control to the zero-based step index. The input control should ideally be a button that toggles between zero and a non-zero value. Step mapping and tie mapping work together to give you complete control of a note track: use step mapping to change the note velocities, and tie mapping to merge adjacent steps into longer notes. Tie mapping is only supported for note tracks and has no effect on other track types.