MIDI Reference
Stem Director has a full MIDI implementation. Every user-facing action can be mapped to a MIDI message using MIDI learn. This page documents all supported actions, message types, and built-in controller templates.
Connecting a MIDI device
Connect your MIDI controller via USB (class-compliant devices are plug-and-play) or via a 5-pin DIN cable to a USB MIDI interface.
Open Preferences → MIDI to see connected devices. Enable each device you want to use by toggling the checkbox next to its name.
Stem Director supports multiple simultaneous MIDI devices — you can have a footswitch for transport and a controller for stem levels at the same time.
MIDI Learn
Any action in Stem Director can be mapped to any incoming MIDI message:
- Open Preferences → MIDI → MIDI Mappings
- Click MIDI Learn next to the action you want to map
- The button glows — send a MIDI message from your controller (press a button, move a fader)
- Stem Director detects the message and assigns it
- Click Save
To clear a mapping, right-click the mapping row and choose Remove.
Supported message types
| Message type | Notes | |---|---| | Note On | Trigger on note-on (velocity ≥ 1). Note-off ignored unless configured. | | Note Off | Trigger on note-off (velocity = 0). Rarely used; useful for latch-style buttons. | | Control Change (CC) | Toggle-style: values ≥ 64 = on, < 64 = off. Continuous: full CC range (0–127). | | Program Change | Maps directly — PC 1 = action 1, etc. Useful for song selection on rack units. | | MIDI Clock | Receive only — Stem Director can slave to incoming MIDI clock (tempo display only, does not affect playback timing). | | MTC | MIDI Timecode input for position sync (read-only). |
MIDI Channels
Each mapping can be channel-specific (channels 1–16) or Omni (respond on any channel). Omni is the default — change it per mapping if you need channel isolation between devices.
Action reference
Transport
| Action | Description | |---|---| | Play | Start playback at current position | | Stop | Stop playback, return to start | | Play / Pause | Toggle play and pause (position held on pause) | | Next Track | Advance to next track in set list | | Previous Track | Go to previous track in set list | | Jump to Start | Return track position to bar 1, beat 1 | | Jump to Cue Point | Jump to a named cue marker within the track |
Stem control
| Action | Description | |---|---| | Stem Mute [1–n] | Toggle mute on stem by index | | Stem Solo [1–n] | Toggle solo on stem by index | | Stem Volume [1–n] | Set volume for stem (CC value maps to 0–100%) | | Master Volume | Set overall playback volume (CC) | | Mute All | Mute all stems simultaneously | | Unmute All | Unmute all stems simultaneously |
Set list
| Action | Description | |---|---| | Load Track [n] | Load the nth track in the current set list | | Next Set List | Switch to the next set list | | Previous Set List | Switch to the previous set list |
Redundancy
| Action | Description | |---|---| | Take Primary | Force this machine to primary role | | Silence Secondary | Mute the secondary machine's outputs |
MIDI output (feedback)
Stem Director can send MIDI output to update button LEDs on supported controllers:
- LED on when a track is playing
- LED off when stopped
- Pulse when in the last 8 bars of a track
Enable MIDI output in Preferences → MIDI → MIDI Output and select your controller.
MTC output
Stem Director can transmit SMPTE MIDI Timecode (MTC) as the track plays. This allows synchronising external devices (lighting consoles, video servers) to the Stem Director timeline.
Configure in Preferences → MIDI → Timecode Output:
- Frame rate: 24, 25, 29.97 DF, 30 fps
- Output port: any connected MIDI output device
Controller templates
Built-in templates pre-configure MIDI mappings for popular controllers:
| Controller | Template actions | |---|---| | Behringer FCB1010 | 10 buttons → tracks 1–10, expression → master volume | | Line 6 HX Stomp | 3 footswitches → play, next track, stop | | Elgato Stream Deck | HID buttons → play, stop, next, previous, 8 stem mutes | | Morningstar MC8 | 8 buttons fully programmable, template assigns transport + stem mutes |
Load a template: Preferences → MIDI → Load Template → [controller name]. Templates are additive — they don't clear existing mappings.
Example: FCB1010 setup
Bank 0:
Button 1 → Play / Pause (Note On, channel 1, note 36)
Button 2 → Next Track (Note On, channel 1, note 37)
Button 3 → Previous Track (Note On, channel 1, note 38)
Button 4 → Stop (Note On, channel 1, note 39)
Button 5 → Stem Mute 1 (Click) (Note On, channel 1, note 40)
Expression A → Master Volume (CC 7, channel 1)
Bank 1:
Buttons 1–8 → Load Track 1–8 (Program Change 1–8)