Skip to content
    ← Back to home

    Blog

    SMPTE/MTC timecode for lighting: a practical introduction

    How SMPTE and MIDI timecode differ from live audio analysis, and when to lock lights to a clock.

    Cover for SMPTE/MTC timecode for lighting: a practical introduction

    WavePhase · 2026-08-23

    Clock versus analysis

    Live audio analysis follows whatever is in the feed. Timecode plays a known timeline. Use SMPTE or MIDI timecode when video, playback and lights must scrub together in rehearsal and hit the same frame on the night.

    If the night is a DJ reading the room, timecode is the wrong master. If the night is a playback show with content on a timeline, timecode is the right master. Many events use both: reactive washes for the party, a timecode chunk for the one video drop that must land.

    SMPTE, MTC and friends

    Linear timecode (LTC / SMPTE) is an audio-like signal you can put on a track or a dedicated output. Machines read hours:minutes:seconds:frames. Frame rate must match the project: 24, 25, 29.97, 30, and drop-frame versus non-drop are not interchangeable.

    MIDI timecode (MTC) carries the same idea over MIDI. Useful when the lighting computer already has a MIDI interface and the playback machine can emit MTC. Art-Net and other show protocols can also carry timecode — the clock is the point, the pipe is negotiable.

    Internal clocks and cue lists can run without an external tape machine. That is fine for a sequence that starts when you press go. It is not the same as locking to a video server that might pause, scrub, or jump.

    Frame rates and drop-frame

    Pick the rate the video department already uses. Do not invent a lighting-only rate. 25 fps is common on PAL stages. 29.97 drop-frame exists because NTSC colour television was a compromise; if you do not know why you need it, you probably want 30 or 25 instead.

    A one-frame offset is visible when a hit is tight. A one-second offset is a different show. Confirm the start-of-timeline together: some people call first frame 01:00:00:00, others 00:00:00:00.

    How to run a locked cue

    Build the cue list against the timeline in rehearsal. Chase the code. When the machine jumps, the lights should jump. If they drift, you have the wrong rate, a bad read, or a software chase that is following wall-clock instead of incoming code.

    Always have a manual go and a blackout. Timecode readers fail. Files get replaced. The opener’s USB stick will be a different edit.

    When not to use it

    Do not lock a whole club night to a fake timeline “so it feels professional.” The room will leave the timeline. Use DSP and a human override for that job. Save timecode for moments that actually have a clock.

    A rehearsal that actually tests lock

    Scrub backwards. Pause. Jump to the chorus. If the lights smear or keep walking, you are chasing wall-clock or a free-running sequence. Fix the chase source before you add more cues.

    Replace the file with a one-second-later edit and watch who notices first: video or lights. Align the zero. Then lock the rate in writing on the call sheet: “25 fps non-drop, hour 1 start.”

    Keep a handheld go for the moment the reader dies. A silent timeline with no manual escape is not a professional show. It is a single point of failure with better branding.

    Audio cables that carry time

    LTC on a spare audio track will pick up hum and bleed if you treat it like a DJ send. Use a dedicated output, keep levels in the range the reader expects, and do not put it through a club EQ “because it is audio.” It is a clock that happens to look like audio.

    If two machines disagree by a constant offset, you have a start-of-timeline argument, not a rate argument. If they drift, you have a rate or a bad read. Those are different fixes. Do not “nudge cues” for a drift problem; you will chase it all night.

    MTC specifics

    MTC is quarter-frame messages. A reader that only sees full frames may feel coarse when you scrub. That is normal. Do not “fix” it by switching to wall-clock. Confirm the sender is actually emitting MTC and not only a MIDI clock pulse.

    If the lighting computer is also a DAW host, isolate ports. Lighting MTC on the same port as a synth bank is how transport buttons steal your blackout. Label the MIDI port “timecode only” and refuse other traffic on it.

    Related

    If you want this in software

    WavePhase is a desktop lighting app: a node graph that can take live audio, time, MIDI, OSC or an API and send the result to fixtures, pixels and visuals over Art-Net or sACN. The articles on this blog teach the craft. The app is one way to run it.

    Free Early Access includes the editor and one DMX universe. Features and the quick start are the product docs — not a substitute for patching real hardware.

    Get WavePhase Free

    Free account required — no credit card — Windows, macOS and Linux.