Free forever·no account, no tracking, no third-party requests ·open data, free API
showstack / protocols / mtc

MIDI Timecode

Also called MTC, MIDI Time Code.

Carries SMPTE-style hours, minutes, seconds and frames over a MIDI connection, as quarter-frame messages while running and a full-frame sysex when locating. It is how a DAW, playback machine or console chases a master clock without giving up an audio channel.

Timecode and syncOpenThe MIDI AssociationReported

Stewarded by The MIDI Association (MIDI Manufacturers Association).

Clock and sync Tiny, ruthlessly regular

Almost no bandwidth. Carries no content at all, only agreement about when. Its value is entirely in its regularity.

What kills it. Jitter, an unaware switch delaying the timestamps it was meant to correct, and two devices both convinced they are the master.

What goes wrong

Quarter-frame messages carry one nibble at a time, four per frame, so a complete timecode value takes two frames to arrive. Every MTC reader is inherently one to two frames behind. Compensate in the receiver, do not nudge the master.
The frame rate lives in bits 5-6 of the hours byte and encodes only 24, 25, 30 drop-frame and 30. There is no 23.976, 48, 50 or 60 value, so a 23.98 project has to travel as 24 and be reconciled at the far end.
The full-frame sysex F0 7F cc 01 01 hr mn sc fr F7 only locates the receiver. Nothing actually runs until quarter-frames start arriving, which is why a device can display the correct time and still not be chasing.
A receiver that ignores the frame-rate bits will run 25 fps code as 30 and drift by a fifth. The numbers look sane the whole time, which is what makes it expensive to spot.
Quarter-frames are continuous traffic on a 31.25 kbit/s DIN line. Share that cable with MSC and your cue messages queue behind the clock.
Only the low nibble of each user-bit data byte is used in the user-bits sysex. Converters that repack user bits between LTC and MTC routinely lose or reorder them.

What speaks MIDI Timecode (28)

28 products — 10 hardware, 18 softwareshow all
ProductDirectionNotes
Ableton Live
Ableton AG
in Live slaves to MTC and reads it as an Arrangement position, with MIDI Timecode Frame Rate and Offset settings. Ableton state Live can only act as a MIDI sync device, not a host; MTC carries no tempo and tempo changes cannot be tracked.
Ardour
Ardour Community
bidirectional MIDI timecode in and out.
Avolites Titan
Avolites
in A cue list can read timecode from the system clock, an internal timecode source, MIDI, SMPTE or the Winamp player. Up to 4 separate timecode sources per console.
ChamSys MagicQ
ChamSys
in
needs licence
MIDI timecode receive is part of the same Unlocked-mode timecode feature set.
disguise Designer
disguise
in
dot2 onPC
MA Lighting
in MIDI timecode can run cues automatically. Receiving timecode does not require a network session.
Eos
Electronic Theatre Controls (ETC)
in MIDI timecode is receive only, locally or via a Show Control Gateway.
Hippotizer
Green Hippo (an ACT Entertainment brand)
in Sync Manager receives MTC via the Rosendahl Mif4 or CB Electronics TC-5 USB interfaces.
Isadora
TroikaTronix (Mark Coniglio)
in Specifications page states MIDI Timecode support and the show-control page lists MTC for synchronisation; the docs do not state that Isadora also generates MTC.
MIDI Monitor
Snoize
in Generic real-time MIDI monitor; captures MIDI Time Code quarter-frame/real-time messages along with all other MIDI data, but has no dedicated MTC decoder view.
MIDI-OX in Recommended on ControlBooth (theatre-tech forum) by author John Huntington for displaying MIDI Time Code readouts.
Millumin
Anomes (Philippe Chaurand)
in MTC over MIDI, same framerate list as LTC.
Mitti
Imimot
in MIDI timecode chase.
ONYX
Obsidian Control Systems
in
needs licence
MIDI timecode via MIDI ports or the SMPTE IN connector. Only fully enabled from the NOVA+ tier.
Pro Tools
Avid
bidirectional MIDI timecode in and out.
QLab
Figure 53
bidirectional Can both generate and chase MIDI timecode.
REAPER
Cockos Incorporated
bidirectional Chases MTC via the external timecode synchronization settings against an enabled MIDI input; generates MTC from the stock SMPTE LTC/MTC Timecode Generator.
TimecodeDisplay
Figure53
in Listens to and displays incoming MIDI Time Code.
Brainstorm DXD-8 Distripalyzer
Brainstorm Electronics
out MIDI timecode output.
ChamSys MagicQ MQ80
ChamSys
in MIDI timecode.
DiGiCo Quantum 338
DiGiCo
in MIDI timecode in.
disguise gx 3
disguise
in
Eos Apex 5
ETC
in Receive only, from local MIDI or a Gateway.
ETC Ion Xe 20
ETC
in MIDI timecode in.
MA Lighting grandMA3 light
MA Lighting
in MIDI timecode.
Hippotizer Boreal+ MK2
Green Hippo
in Timecode-driven playback.
Hog 4
High End Systems
in
Rosendahl nanosyncs HD
Rosendahl Studiotechnik
out MIDI timecode output.

Typical use

The words for it

Glossary entries that name MIDI Timecode, with the false friends that catch people out.

Sources

Understand the mechanism
Something wrong, or missing?

Known gaps on this entry: default_ports, first_published, implementations. If you can source one of them, that is a ten minute pull request.

Edit this entry on GitHub — one file, editable in your browser, and your handle goes on it permanently.

Work at The MIDI Association (MIDI Manufacturers Association)? Confirm or correct this entry — it is free, it stays free, and nothing about it is for sale.