Skip to content

Timecode

What this does: Helm Cues sends timecode from the playing track as LTC (audio), MTC (MIDI) and Art-Net, sends MIDI Clock from the beat grid, and can chase MTC, Art-Net or a Helm DJ deck.

This page is the setup and the rules. For the desk side see grandMA3 setup.

PlaceHolds
Settings (⌘,) → Audio DevicesLTC out: Audio Routing Mode, Enable LTC Output, device, Generated LTC channel, Playback sync, Track audio defaults
Settings → MIDI DevicesMTC out: Enable MTC Output, MTC Output Device. MTC in: MTC Input Device, Setup recipes
Settings → TimecodeWhen stopped (this show), Art-Net timecode out, MIDI Clock out, Timecode input, Outputs now
Settings → GeneralDefault Frame Rate for new projects
Settings → Project → Frame rateThis project’s rate
Live pageRun Timecode for this show, the output pill, the chase Follow switch

Outputs now at the foot of the Timecode tab lists LTC, MTC, Art-Net and MIDI Clock. Each row shows Running, Held or Off, its device, the last frame and the latest error.

LiveBuild
DrivesLTC, MTC, Art-Net, MIDI ClockLTC, MTC, Art-Net, MIDI Clock
NeedsThe output on in Settings with a device or address, Run Timecode on for this show, a track playingThe output on in Settings with a device or address, a track playing
Run TimecodeRequiredIgnored
MIDI Clock tempoFollows grid and track changes while playingSet at play
  • Run Timecode starts off for every new show. Turn it on before the show: TC ON (Classic) or the LTC out chip under Outputs (Flat).
  • Arming Live does not start timecode. Play does.
  • The Live output pill shows each output and its state. Amber means nothing will reach a desk. See Live.

The outputs run on their own clock and follow the sound you hear.

  • Play: the desk gets the start time at once. Running timecode starts when the music does, 0.3–0.8 s after Play on this Mac. It never runs ahead of the music and jumps back.
  • Seek while playing: timecode stops, sends the new time, and runs again when the music does.
  • No frame is repeated or skipped. Small timing differences are made up by running up to 1 % fast or slow.
  • A big difference jumps: over 1.5 frames, or a seek. The desk gets the new time at once.
  • The app can stall for up to 3 s (a save, a session starting, a busy screen). Timecode runs on through it.
  • The music stops without a stop (a stalled file): timecode stops within 0.3 s and starts again with the music.
  • The app sends nothing for 3 s: timecode stops until it does.

Pick the rate in the New Project dialog, in Settings → Project → Frame rate, or set the default in Settings → General → Default Frame Rate.

RateDrop-frameLTCMTCArt-NetUse
24 fpsnoyesyesyesFilm
25 fps (PAL)noyesyesyesEurope. Most desks here.
29.97 DFyesyesyesyesNTSC broadcast
29.97 NDFnoyessent as 30sent as 30NTSC
30 fpsnoyesyesyesGeneral
  • Match the desk’s timecode pool. 25 against 30, or DF against NDF, reads as garbage or drifts.
  • Drop-frame shows a semicolon before the frames: 01:02:03;04. Non-drop shows a colon.
  • Other rates: 23.976 is sent as 24. LTC, MTC and Art-Net cannot send 50, 59.94 or 60. The output shows an error and sends nothing.
  • Each track has a timecode offset: the value the desk sees at the track’s start. One hour per track is the convention. Output is the offset plus the time into the track.
  • A file that carries LTC on one channel can set the offset: Use LTC as track offset. Use LTC frame rate takes its rate too.
  • These two follow a chain: Settings → Audio Devices → Track audio defaults, then Settings → Project → Audio, then the track’s own setting. The nearest one set wins.
  • The offset is the time at the ruler’s start, the start of the preroll. A track at 01:59:56:00 with 4 s of preroll has its music on 02:00:00:00.
  • Timecode never goes below 00:00:00:00. Before it, every output is silent: no LTC, no MTC, no Art-Net. At 00:00:00:00 it starts, on the frame.
  • Where this bites: a track with offset 00:00:00:00 whose audio trim moves the music earlier than the ruler. That part of the music plays with no timecode.
  • The rule: give every track an offset larger than anything before its start. One hour per track (01:00:00:00, 02:00:00:00 …) does it.
  • Past midnight 23:59:59 counts on to 00:00:00:00, as desks expect. An offset of 24 h or more comes round to 00.
  1. Settings → Audio Devices.

  2. Audio Routing Mode: off is Single Output (one device, split by channel). On is Dual Output (a separate LTC device).

  3. Turn on Enable LTC Output. It is off by default.

  4. Pick the device: Output Device (Single) or LTC Output Device (Dual).

  5. Pick the Generated LTC channel: Both channels (stereo), Left channel only or Right channel only.

  6. Wire that channel to the desk’s LTC input. Line level, balanced if you can.

  • Music plays on the macOS default output, not the device picked here. In Single Output on one interface, set the track’s Music out to the channel LTC does not use, or music and LTC mix on one leg.
  • File LTC out (per track: Off, Left, Right, Both) passes the LTC leg already in a file straight through. Off keeps it out of the PA.

The playhead and timecode follow what you hear.

  • The readout: Sync: audio +23 ms (measured) · trim 0 f.
  • Trim: −0.5 f and +0.5 f shift the playhead and timecode in half frames, up to 12 frames either way. Reset returns to 0.
  • Press + when you hear a hit before the playhead reaches it.
  • Build’s Tools menu has the same control.
  1. Settings → MIDI Devices → turn on Enable MTC Output.

  2. Pick the MTC Output Device.

  3. No hardware port? Make a macOS Network MIDI session: Audio MIDI Setup → MIDI Studio → Network. It appears in the list. Use wired LAN; Wi-Fi jitters.

Cues → MTC over USB → MIF4 → LTC → grandMA3.

  1. Settings → MIDI Devices → MTC Output Device: the MIF4’s USB port.

  2. On the MIF4, convert MTC to LTC at the project rate.

  3. On the desk, take LTC in on a timecode pool at the same rate.

What the MIF4 receives:

MomentMTC
PlayA full frame with the start time
The music startsA full frame, then quarter frames, 4 a frame
Seek while playingQuarter frames stop; a full frame with the new time; quarter frames when the music moves
Stop, MuteNothing
Stop, Hold last frameA full frame at once, then one every second
Below 00:00:00:00Nothing until 00:00:00:00
  • Match the rate on all three: the project, the MIF4 and the desk pool. MTC names 24, 25, 29.97 DF and 30. 29.97 NDF is sent as 30 and 23.976 as 24, so set the MIF4 to those.
  • USB MIDI moves each quarter frame by up to 1 ms. That is normal; converters allow for it.

Needs the desk’s timecode display (or an LTC reader on the MIF4’s LTC out) and a track at least 5 minutes long with a 4 s preroll and an offset of 00:59:56:00, so its music starts on 01:00:00:00.

  1. Set the project rate: Settings → Project → Frame rate. Set the MIF4 and the desk pool to match.

  2. When stopped: Mute. Turn on Run Timecode and MTC out.

  3. Press Play from the top. The reader shows 00:59:56:00 and counts up, with no error light.

  4. Watch the change to 01:00:00:00 when the music starts. Note any jump back (expect at most one, under 10 frames).

  5. At about 2 minutes, click a cue far down the list while playing. The reader jumps once to it and runs on.

  6. Press Pause, then Play. The reader stops and restarts on the same time, give or take a frame.

  7. Let it play to 5 minutes. Compare the reader with the Live readout: within a frame.

  8. Set When stopped to Hold last frame. Pause. The reader holds the frame and keeps lock.

  9. Repeat for each rate you use: 25, 30, 29.97 DF, 24. Note any MIF4 error light with the time it showed.

  1. Settings → Timecode → Art-Net timecode out. Turn it on. It is off by default.

  2. Address: 2.255.255.255 by default (broadcast on the 2.x range). Use your subnet’s .255 to broadcast, or the desk’s IP.

  3. Port: 6454 by default.

  4. On the desk, take Art-Net timecode in.

  • No universe, net or subnet field. There is nothing to set.
  • Art-Net carries 24, 25, 29.97 DF and 30 fps. A show at another rate cannot send it, and the tab says so.
  • A bad address reads Enter an IPv4 address, e.g. 2.255.255.255 and is not saved.

MIDI Clock from the loaded track’s beat grid, with Start, Stop and Continue.

  1. Settings → Timecode → MIDI Clock out. Turn it on. It is off by default.

  2. Pick the port. It is its own port, separate from MTC. Helm Cues Clock (virtual) reaches apps on the same Mac. ↻ rescans.

  3. Give the track a beat grid. Tempo changes change the rate where they sit. See Beat grid and tempo.

The rules:

  • A track with no tempo sends no clock.
  • Play from mid-track, or seek, and the receiver is sent to the new bar.
  • MIDI Clock always sends Stop on a stop. When stopped does not apply to it.

MIDI Clock can only send a position up to bar 1024 in 4/4. At 120 BPM that is 34 minutes in.

  • Past bar 1024 the clock keeps running, but a device that starts or seeks there lands on the wrong bar.

What the outputs do on a pause or a stop. Set per project, with it open.

  1. Settings → Timecode → When stopped (this show).

  2. Pick Mute (default) or Hold last frame.

MuteHold last frame
LTCGoes quietRepeats the last frame
MTCStopsA full frame at once, then one every second
Art-NetGoes quietRepeats the last frame
MIDI ClockStopStop
Desk timecode trackDrops out, re-triggers on playStays on
  • Hold has no time limit. It runs until play, until the output is turned off, or until the project goes back to Mute.
  • A scrub while held moves the held frame.
  • Turning an output off, or changing its device, always stops it. It never holds.
  • Panic is always silent, even on Hold. See Panic.

Cues can follow an upstream clock instead of its own. Chase moves the playhead; it never presses Play.

  1. Settings → Timecode → Timecode input → Chase source:

    OptionReads
    MTC — port picked under MIDI DevicesMTC on the MTC Input Device
    Art-Net timecode — port 6454Art-Net timecode on port 6454, on every network
    Helm DJ deck — the master deck of a DJ in this sessionThe master deck of a Helm DJ in the session this Cues hosts. See below.
  2. For MTC: Settings → MIDI Devices → MTC Input — Chase upstream timecode → MTC Input Device. Setup recipes covers a DAW on the same Mac (IAC Driver), Network MIDI and hardware.

  3. Read the signal: Locked, Listening — no signal or Idle under Timecode input. You can check it before you turn Follow on.

  4. Turn Follow on in the page header: Follow ON / OFF (Classic) or Follow | Free (Flat). It sits on Build, Live and Monitor. One switch for the app.

  5. Optional: Auto track (shown while following). It loads the setlist track the incoming time falls in. See the table below.

Follow is greyed out until the chase source is there. The header names what is missing.

SourceNeedsMissing reads
MTCAn MTC Input Device pickedNo MIDI input
Art-NetArt-Net in running on port 6454Art-Net in not running
Helm DJ deckA Helm DJ at operator or better in the session this Cues hostsNo Helm DJ deck
  • Follow moves the player of the page on screen: Build’s player on Build, the Live player everywhere else. Cue lists, Now / Next and the video windows follow it.
  • Auto track (MTC and Art-Net): the setlist track whose timecode range holds the incoming time loads.
  • Build’s Audio menu → Chase is the same switch as the header Follow. Its list (MTC, Art-Net, DJ deck) is the Chase source in Settings → Timecode. It reads Off, Searching, Locked, or what is missing.
  • While Art-Net or a DJ deck is the source, the MTC input port is not read.

Cues follows the master deck of a Helm DJ joined to the session this Cues hosts. The deck’s track time drives the loaded track. No timecode cable.

  1. On this Cues, host a session: View → Sessions… (⇧⌘D). See Sessions.

  2. In Helm DJ: Settings → Network → Helm Session, pick this host. Type the passcode if the host has one on (it shows on the host’s Sessions tab); otherwise ask to join. Steps: Helm Session in Helm DJ.

  3. On this Cues, allow the DJ’s request.

  4. Set the DJ’s role to operator. Allow alone is not enough: a monitor’s deck is ignored.

  5. Settings → Timecode → Chase source → Helm DJ deck. The line under it names the deck: Booth DJ · deck 2 · master · 124.0 BPM · <title>.

  6. Turn Follow on in the page header. It unlocks once the DJ is at operator.

  7. Load the track the DJ is playing, or let Auto track load it.

  • Auto track (DJ): a deck title that names a setlist track loads it. The match is the exact name, then the name ignoring case, spaces and punctuation. Name your Cues tracks after the DJ’s titles.
  • Position is the deck’s track time from its start. The track offset is not added.
  • Lost signal reads no anchor for over a second: no signal.
  • The deck followed is the DJ’s master: the tempo master, else a playing deck on air, else the deck played last.
  • The DJ’s STOP (panic) parks the deck. Cues’ chase parks with it.

When the input drops, the playhead runs on at the last rate for the freewheel time. Then the input reads as lost and the position holds.

  1. Settings → Timecode → Freewheel. 0 to 2 s in 0.1 s steps. Default 0.5 s. One setting for the app.
  • A held frame keeps the lock. A source on hold, sending one frame a second, is not lost.
  • No indicator of its own. It covers every chase source.

Help → Diagnostics shows each output’s live state, MTC jitter and clock drift over 60 s. See Diagnostics and support.