MIDI timecode
MIDI time code (MTC), previously known as MSMPTE, was adopted by the MIDI Manufacturer's Association in 1986, modifided, and re-approved in February 1987. The MIDI association gave Chris Meyer a lifetime achievement award in 2025, covering his work on this and other MIDI standards (MMC, MIDI scene control).
MTC embeds the same timing information as standard SMPTE timecode as a series of small 'quarter-frame' MIDI messages. There is no provision for the user bits in the standard MIDI time code messages, and SysEx messages are used to carry this information instead. The quarter-frame messages are transmitted in a sequence of eight messages; thus, a complete timecode value is specified every two frames. If the MIDI data stream is running close to capacity, the MTC data may arrive a little behind schedule, which has the effect of introducing a small amount of jitter. In order to avoid this, it is ideal to use a completely separate MIDI port for MTC data. Larger full-frame messages, which encapsulate a frame worth of timecode in a single message, are used to locate to a time while timecode is not running.
Unlike standard SMPTE timecode, MIDI timecode's quarter-frame and full-frame messages carry a two-bit flag value that identifies the rate of the timecode, specifying it as either:
- 24 frame/s (standard rate for film work)
- 25 frame/s (standard rate for PAL video)
- 29.97 frame/s (drop-frame timecode for NTSC video)
- 30 frame/s (non-drop timecode for NTSC video)
MTC distinguishes between film speed and video speed only by the rate at which timecode advances, not by the information contained in the timecode messages; thus, 29.97 frame/s dropframe is represented as 30 frame/s dropframe at 0.1% pulldown.
MTC allows the synchronisation of a sequencer or DAW with other devices that can synchronise to MTC or for these devices to 'slave' to a tape machine that is striped with SMPTE. For this to happen, a SMPTE to MTC converter needs to be employed. It is possible for a tape machine to synchronise to an MTC signal (if converted to SMPTE) if the tape machine is able to 'slave' to incoming timecode via motor control, which is a rare feature.