MIDI
Stage Traxx provides comprehensive MIDI support, allowing you to control external MIDI devices and be controlled by them. You can embed MIDI commands directly into song lyrics for precise timing control, trigger songs via incoming MIDI messages, and synchronize external devices using MIDI Timecode or MIDI Clock.
Sending MIDI Commands
MIDI commands can be embedded in your song lyrics to trigger external devices at specific moments during playback.
Info
Each MIDI tag must be placed on its own dedicated line. Do not mix MIDI tags with lyrics text or other tags on the same line.
Tip
Network clients send embedded MIDI commands to connected MIDI gear from both lyrics received from the host and local lyrics. This allows you to add custom MIDI commands to songs selected by a host without modifying the host's song files.
Trigger Types
Commands are placed in square brackets with different prefixes to control when they execute:
- Song Load
[midi: ...]: Executes when the song loads. - Play Action
[midi@play: ...]: Executes when the play action is triggered. - Stop Action
[midi@stop: ...]: Executes when the stop action is triggered. - Timestamp
[midi@01:34.50: ...]: Executes at a specific playback time. Timestamps use the formatMM:SSorMM:SS.xx. Minutes and seconds must always be two digits (e.g.,01:05not1:5). The fractional seconds are optional and can be one or two digits, where.5equals 500ms.
Command Syntax
Commands follow the format: <Prefix><Value>.<Subvalue>@<Channel>
The channel is specified using @ followed by the channel number (1–16). System messages do not use a channel.
Note
Stage Traxx uses value ranges of 0–127 for program numbers, controller values, notes, and velocities. Some devices use 1–128 in their documentation. If your device uses 1–128, subtract 1 from the values shown in your device's manual.
Multiple commands can be chained in a single tag, separated by a comma and optional whitespace. Commands are sent in the order they are written:
[midi@play: PC5@1, CC7.100@1,CC10.64@1]
Program Change
Sends a MIDI program change message to switch patches or presets on external devices.
Format: PC<program>@<channel> or PC<program>.<bank>@<channel>
<program>: Program number (0–127)<bank>: Optional bank number (0–127)<channel>: MIDI channel (1–16)
Example
[midi: PC5@1]— Switch to program 5 on channel 1[midi@play: PC0@10]— Switch to program 0 on channel 10 when play is triggered
Bank Select:
Most MIDI devices use bank select messages (CC0 for MSB, CC32 for LSB) before program changes to access patches beyond the standard 128.
When you specify a bank number, Stage Traxx sends a bank select LSB (CC32) before the program change. For example, PC101.4@1 sends CC32 with value 4, followed by program change 101 on channel 1.
If your device requires a custom MSB value, send it explicitly using a Control Change command:
[midi: CC0.2@1, PC101.4@1]
This sends CC0 (bank select MSB) with value 2, then CC32 (bank select LSB) with value 4, then program change 101.
Control Change
Sends a MIDI control change (CC) message to adjust parameters like volume, pan, or expression on external devices.
Format: CC<controller>.<value>@<channel>
<controller>: Controller number (0–127)<value>: Controller value (0–127)<channel>: MIDI channel (1–16)
Example
[midi: CC7.100@1]— Set volume (CC7) to 100 on channel 1[midi: CC10.64@2]— Set pan (CC10) to center (64) on channel 2[midi@stop: CC123.0@1]— Send all notes off (CC123) on channel 1 when stop is triggered
Note On/Off
Sends a MIDI note message to trigger sounds on external devices.
Format: N<note>@<channel> or N<note>.<velocity>@<channel>
<note>: Note number (0–127, where 60 is middle C)<velocity>: Optional velocity (0–127). A velocity of 0 sends a Note Off message; any other value sends a Note On message. If omitted, defaults to 127.<channel>: MIDI channel (1–16)
Example
[midi@play: N60@1]— Play middle C on channel 1 when play is triggered[midi@stop: N60.0@1]— Send Note Off for middle C on channel 1 when stop is triggered[midi@00:05.00: N72.127@1]— Play C5 at full velocity 5 seconds into the song
Sysex
Sends a MIDI System Exclusive message for device-specific commands that aren't covered by standard MIDI messages.
Format: SX <bytes> or SX<bytes>
<bytes>: Hex-coded bytes of the message, optionally separated by spaces
The leading F0 and trailing F7 bytes that frame a sysex message should be included in the byte sequence.
Example
[midi: SX F0 43 10 4C 00 00 7F F7]— Bytes separated by spaces[midi: SXF043104C00007FF7]— Bytes without spaces[midi@play: SX F0 7E 7F 09 01 F7]— Send GM System On when play is triggered
Song Select
Sends a MIDI song select message to select a song on external sequencers or drum machines.
Format: SS<song>
<song>: Song number (0–127)
This is a system message and does not use a channel.
Example
[midi: SS12] — Select song 12 when the song loads
Start, Stop, Continue
Sends MIDI system real-time messages to control transport on external sequencers and drum machines.
Format: START, STOP, or CONTINUE
These are system messages and do not use a channel.
Example
[midi@play: START]— Send MIDI Start when play is triggered[midi@stop: STOP]— Send MIDI Stop when stop is triggered[midi@play: CONTINUE]— Send MIDI Continue to resume external playback
Receiving MIDI
Songs can be triggered via incoming program change or song select messages. Configure this in the Edit Song Details screen for each song. Most Stage Traxx actions can be mapped to incoming MIDI commands through the Remote Control dialog.
Device Synchronization
Stage Traxx can synchronize external devices using two mutually exclusive sync modes.
MIDI Timecode
Sends a continuous 24-hour timestamp in the format HH:MM:SS:FF. Supports 25 or 30 frames per second with optional per-song offset.
Note
Speed changes during playback cause timecode jumps. If you need smooth synchronization during speed changes, use MIDI Clock instead.
MIDI Clock
Synchronizes external devices to the song tempo. Each song requires a BPM setting for clock sync to work. This is useful for synchronizing delay effects, arpeggiators, and other time-dependent features on external devices.