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.
Where the settings live
Section titled “Where the settings live”| Place | Holds |
|---|---|
| Settings (⌘,) → Audio Devices | LTC out: Audio Routing Mode, Enable LTC Output, device, Generated LTC channel, Playback sync, Track audio defaults |
| Settings → MIDI Devices | MTC out: Enable MTC Output, MTC Output Device. MTC in: MTC Input Device, Setup recipes |
| Settings → Timecode | When stopped (this show), Art-Net timecode out, MIDI Clock out, Timecode input, Outputs now |
| Settings → General | Default Frame Rate for new projects |
| Settings → Project → Frame rate | This project’s rate |
| Live page | Run 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.
Which transport drives the outputs
Section titled “Which transport drives the outputs”| Live | Build | |
|---|---|---|
| Drives | LTC, MTC, Art-Net, MIDI Clock | LTC, MTC, Art-Net, MIDI Clock |
| Needs | The output on in Settings with a device or address, Run Timecode on for this show, a track playing | The output on in Settings with a device or address, a track playing |
| Run Timecode | Required | Ignored |
| MIDI Clock tempo | Follows grid and track changes while playing | Set 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.
How timecode follows the music
Section titled “How timecode follows the music”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.
Frame rates
Section titled “Frame rates”Pick the rate in the New Project dialog, in Settings → Project → Frame rate, or set the default in Settings → General → Default Frame Rate.
| Rate | Drop-frame | LTC | MTC | Art-Net | Use |
|---|---|---|---|---|---|
| 24 fps | no | yes | yes | yes | Film |
| 25 fps (PAL) | no | yes | yes | yes | Europe. Most desks here. |
| 29.97 DF | yes | yes | yes | yes | NTSC broadcast |
| 29.97 NDF | no | yes | sent as 30 | sent as 30 | NTSC |
| 30 fps | no | yes | yes | yes | General |
- 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.
Offsets
Section titled “Offsets”- 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 preroll and offset rule
Section titled “The preroll and offset rule”- The offset is the time at the ruler’s start, the start of the preroll. A track at
01:59:56:00with 4 s of preroll has its music on02:00:00:00. - Timecode never goes below
00:00:00:00. Before it, every output is silent: no LTC, no MTC, no Art-Net. At00:00:00:00it starts, on the frame. - Where this bites: a track with offset
00:00:00:00whose 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:59counts on to00:00:00:00, as desks expect. An offset of 24 h or more comes round to00.
LTC out
Section titled “LTC out”-
Settings → Audio Devices.
-
Audio Routing Mode: off is Single Output (one device, split by channel). On is Dual Output (a separate LTC device).
-
Turn on Enable LTC Output. It is off by default.
-
Pick the device: Output Device (Single) or LTC Output Device (Dual).
-
Pick the Generated LTC channel: Both channels (stereo), Left channel only or Right channel only.
-
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.
Playback sync
Section titled “Playback sync”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.
MTC out
Section titled “MTC out”-
Settings → MIDI Devices → turn on Enable MTC Output.
-
Pick the MTC Output Device.
-
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.
MTC through a MIF4 to the desk
Section titled “MTC through a MIF4 to the desk”Cues → MTC over USB → MIF4 → LTC → grandMA3.
-
Settings → MIDI Devices → MTC Output Device: the MIF4’s USB port.
-
On the MIF4, convert MTC to LTC at the project rate.
-
On the desk, take LTC in on a timecode pool at the same rate.
What the MIF4 receives:
| Moment | MTC |
|---|---|
| Play | A full frame with the start time |
| The music starts | A full frame, then quarter frames, 4 a frame |
| Seek while playing | Quarter frames stop; a full frame with the new time; quarter frames when the music moves |
| Stop, Mute | Nothing |
| Stop, Hold last frame | A full frame at once, then one every second |
Below 00:00:00:00 | Nothing 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.
Check the chain: 5 minutes per rate
Section titled “Check the chain: 5 minutes per rate”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.
-
Set the project rate: Settings → Project → Frame rate. Set the MIF4 and the desk pool to match.
-
When stopped: Mute. Turn on Run Timecode and MTC out.
-
Press Play from the top. The reader shows
00:59:56:00and counts up, with no error light. -
Watch the change to
01:00:00:00when the music starts. Note any jump back (expect at most one, under 10 frames). -
At about 2 minutes, click a cue far down the list while playing. The reader jumps once to it and runs on.
-
Press Pause, then Play. The reader stops and restarts on the same time, give or take a frame.
-
Let it play to 5 minutes. Compare the reader with the Live readout: within a frame.
-
Set When stopped to Hold last frame. Pause. The reader holds the frame and keeps lock.
-
Repeat for each rate you use: 25, 30, 29.97 DF, 24. Note any MIF4 error light with the time it showed.
Art-Net timecode out
Section titled “Art-Net timecode out”-
Settings → Timecode → Art-Net timecode out. Turn it on. It is off by default.
-
Address:
2.255.255.255by default (broadcast on the 2.x range). Use your subnet’s.255to broadcast, or the desk’s IP. -
Port:
6454by default. -
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.255and is not saved.
MIDI Clock out
Section titled “MIDI Clock out”MIDI Clock from the loaded track’s beat grid, with Start, Stop and Continue.
-
Settings → Timecode → MIDI Clock out. Turn it on. It is off by default.
-
Pick the port. It is its own port, separate from MTC. Helm Cues Clock (virtual) reaches apps on the same Mac. ↻ rescans.
-
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.
The Song Position limit
Section titled “The Song Position limit”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.
When stopped (this show)
Section titled “When stopped (this show)”What the outputs do on a pause or a stop. Set per project, with it open.
-
Settings → Timecode → When stopped (this show).
-
Pick Mute (default) or Hold last frame.
| Mute | Hold last frame | |
|---|---|---|
| LTC | Goes quiet | Repeats the last frame |
| MTC | Stops | A full frame at once, then one every second |
| Art-Net | Goes quiet | Repeats the last frame |
| MIDI Clock | Stop | Stop |
| Desk timecode track | Drops out, re-triggers on play | Stays 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.
Chase: follow timecode in
Section titled “Chase: follow timecode in”Cues can follow an upstream clock instead of its own. Chase moves the playhead; it never presses Play.
-
Settings → Timecode → Timecode input → Chase source:
Option Reads MTC — port picked under MIDI Devices MTC on the MTC Input Device Art-Net timecode — port 6454 Art-Net timecode on port 6454, on every network Helm DJ deck — the master deck of a DJ in this session The master deck of a Helm DJ in the session this Cues hosts. See below. -
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.
-
Read the signal: Locked, Listening — no signal or Idle under Timecode input. You can check it before you turn Follow on.
-
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.
-
Optional: Auto track (shown while following). It loads the setlist track the incoming time falls in. See the table below.
When Follow unlocks
Section titled “When Follow unlocks”Follow is greyed out until the chase source is there. The header names what is missing.
| Source | Needs | Missing reads |
|---|---|---|
| MTC | An MTC Input Device picked | No MIDI input |
| Art-Net | Art-Net in running on port 6454 | Art-Net in not running |
| Helm DJ deck | A Helm DJ at operator or better in the session this Cues hosts | No Helm DJ deck |
What Follow moves
Section titled “What Follow moves”- 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.
Chase a Helm DJ deck
Section titled “Chase a Helm DJ deck”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.
-
On this Cues, host a session: View → Sessions… (⇧⌘D). See Sessions.
-
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.
-
On this Cues, allow the DJ’s request.
-
Set the DJ’s role to operator. Allow alone is not enough: a monitor’s deck is ignored.
-
Settings → Timecode → Chase source → Helm DJ deck. The line under it names the deck:
Booth DJ · deck 2 · master · 124.0 BPM · <title>. -
Turn Follow on in the page header. It unlocks once the DJ is at operator.
-
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.
Freewheel
Section titled “Freewheel”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.
- 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.
Measure it on your rig
Section titled “Measure it on your rig”Help → Diagnostics shows each output’s live state, MTC jitter and clock drift over 60 s. See Diagnostics and support.