MIDI Time Code (MTC)
SMPTE timecode carried over MIDI, and the most widely supported way to get timecode into show control software.
What is MTC?
MIDI Time Code (MTC) carries SMPTE timecode inside MIDI. Instead of an audio or network signal, it sends the position as MIDI System Exclusive and Quarter Frame messages over any MIDI connection: a DIN cable, USB MIDI or a virtual MIDI port.
MTC is part of the MIDI 1.0 specification, and DAWs, lighting software, laser controllers and media servers all read it.
How it works
MTC uses two message types:
- A Full Frame message carries the whole HH:MM:SS:FF position in one SysEx message. It is sent when jumping to a new position or starting playback.
- Quarter Frame messages come in runs of eight, spread across two frames, that together spell out the position. They stream continuously during playback.
A receiver locks quickly on the Full Frame message and then tracks the Quarter Frames, and the whole stream uses very little MIDI bandwidth.
macOS setup with the IAC Driver
On macOS, route MTC between applications with Apple's built-in IAC (Inter-Application Communication) MIDI driver:
- Open Audio MIDI Setup (in /Applications/Utilities)
- Show the MIDI Studio window (Window > Show MIDI Studio)
- Double-click IAC Driver and check "Device is online"
- In TimecodeLink, select the IAC Driver port as the MTC output
- In your show control software, select the same IAC Driver port as MTC input
TimecodeLink MTC output
TimecodeLink generates MTC from the current deck's playhead position. When the DJ loads a mapped track, TimecodeLink sends a Full Frame message to jump to the track's timecode start, then streams Quarter Frame messages that follow the DJ's playback, pitch changes included.
TimecodeLink outputs MTC at 24, 25, and 30 fps.
Wide support
Lighting consoles, media servers, laser software and DAWs all take MTC.
No hardware needed
A virtual MIDI port (the IAC Driver on macOS) routes MTC between apps on the same machine. No interface, no cable.
Follows the pitch fader
The MTC output follows the DJ's pitch changes, so a cue programmed on a beat stays on that beat.
Related
- Example Setups: sample multi-machine layout with IPs and ports
- SMPTE Timecode: the time format MTC carries
- Art-Net: timecode over Ethernet instead of MIDI
- SMPTE LTC: timecode as an audio signal
Ready to sync?
TimecodeLink turns whatever your DJ software is playing into timecode your show control can chase.