Skip to content

Timecode Chase

Timecode chase locks a timeline to incoming Art-Net ArtTimeCode so the playhead follows a site-wide clock instead of starting at the cursor. Play joins wherever that clock is now — three minutes into a show after a reboot, or at the same frame as every other controller on the network.

Typical setup: QLab, TimeCore, Timecode Expert, or another ArtTimeCode generator puts one clock on the LAN. Each DMX Core 100 runs its own zone timeline and chases that clock.

This is a playhead chase, not a per-cue timecode trigger. Cues, presets, and sounds on the timeline still fire by their timeline times; the clock only decides where the playhead is.

See Timelines for the editor itself.

What You Need

  • An Art-Net ArtTimeCode source (OpTimeCode 0x9700) on UDP port 6454 — the same port as Art-Net lighting.
  • Packets sent to the device’s Ethernet address (unicast) or the subnet broadcast. Sending to 127.0.0.1 on a PC will not reach a unit that is bound to its LAN adapter.
  • A timeline whose duration covers the portion of the clock you want to chase.

The device listens for ArtTimeCode as soon as network lighting output is up. You do not need a dedicated Art-Net input or a special output mapping.

This release receives ArtTimeCode only. MIDI timecode (MTC) and LTC (audio timecode) are not supported. The device does not generate ArtTimeCode.

QLab can generate timecode, but not Art-Net ArtTimeCode by itself — use a converter, Visual Productions TimeCore, Timecode Expert, or another ArtTimeCode generator.

The TC Readout

The timeline editor status bar has a TC: chip:

  • waiting… — no live ArtTimeCode on this network (or it went silent).
  • HH:MM:SS:FF plus fps and source IP — packets are arriving.

Confirm this chip before opening day. Chase settings do not have to be on for the readout to work.

Enabling Chase

Open the timeline editor, expand timeline settings (chevron next to the name), and turn on Timecode chase. Chase is off by default. The knobs below appear when it is on.

Timeline settings with Timecode chase enabled

SettingMeaning
StreamArt-Net timecode stream 0–255. Must match the generator (often 0).
t=0 timecodeIncoming timecode that maps to the start of this timeline. Default is 1 hour (01:00:00:00 / 1h00m00s).
Dropout waitHow long timecode can go silent or freeze on the same frame before this is treated as a dropout. Default 500 ms. Separate from On dropout (what to do afterward).
On dropoutAfter the wait: Pause, Keep playing, or Stop until Play.
On returnWhen timecode comes back after a dropout: Follow again or Wait for Play. Hidden when dropout is Stop until Play (that mode always waits for Play).
On startHow the timeline first locks: When TC appears or Join on Play.

Save the timeline after changing these. Suggested defaults when you first enable chase: Stream 0, t=0 1 hour, Dropout wait 500 ms, On dropout Pause, On return Follow again, On start Join on Play.

t=0 and range

Timeline position is incoming timecode minus t=0. With t=0 at 01:00:00:00, a packet of 01:00:08:00 is 8 seconds into the timeline.

  • Before t=0 (pre-roll) is out of range: When TC appears does not start yet; Play starts at the beginning of the timeline.
  • Past the timeline duration is also out of range: no auto-join. If the timeline is already playing, it ends (or follows On dropout) as usual.

Frame rate follows the packet (24, 25, 29.97 drop-frame, or 30 fps). There is no separate fps setting.

How Play Joins

When chase is on and live timecode is in range (matching Stream):

  • Play — from the Web UI, touchscreen, a schedule, a custom menu, OSC, the API, or a script — joins the live clock. It does not start at the editor cursor.
  • Jump / scrub Play in the editor does the same: disable chase if you need to preview from the cursor.
  • Loop is treated as 1 while chasing. A non-looping site clock should not wrap a looping timeline.

To preview or run the timeline on its own clock, turn Timecode chase off.

On Start

ChoiceBehavior
Join on Play (default)The timeline stays idle until Play (or another trigger). Then it joins live timecode if it is in range.
When TC appearsAs soon as valid timecode is in range, the timeline starts by itself — including after a device restart, as long as the clock is still in range.

Use When TC appears when the site clock is the master and you want every Core to catch the show without someone pressing Play. Use Join on Play when an operator or schedule should still choose to join.

On Dropout and On Return

A dropout is either silence (packets stop) or a hold (the same frame repeats) for longer than Dropout wait. Both count.

On dropoutWhat happens
PauseHold the last look. The playhead freezes.
Keep playingKeep running on this timeline’s own clock (freerun).
Stop until PlayStop the timeline. The next Play joins live timecode again. On return is not used.

When timecode comes back (Pause or Keep playing):

On returnWhat happens
Follow againRe-lock to live timecode immediately (seek to the current clock).
Wait for PlayStay paused or freerunning. Play (or Resume, if the timeline is paused) joins the live clock when you are ready.

Restart Mid-Show

Chase settings are stored with the timeline. After a reboot, chase-enabled timelines load again and the Art-Net listener re-attaches.

  • When TC appears — if the clock is still in range, the timeline auto-joins at the live position, not t=0.
  • Join on Play — wait for Play; that Play still joins live timecode, not the start.

Holds

A Hold milestone leaves chase while the timeline is holding. Incoming timecode is ignored until the hold is released. After release, On return applies: Follow again re-locks to live TC if it is in range; Wait for Play stays uncoupled until Play.

Troubleshooting

SymptomCheck
TC chip stays on waiting…Generator destination is the device IP (or broadcast) on UDP 6454, not loopback. Device and generator are on the same subnet. Firewall is not blocking UDP 6454.
Play starts at 0 instead of joiningChase is saved on. Stream matches the generator. Live TC is in range (at or after t=0, before duration).
One unit chases, another does notStream IDs match. Each unit’s t=0 and duration cover the same clock window.
Timeline stops when TC freezesThat is Pause or Stop until Play. Use Keep playing if a frozen frame should not hold the look.
Auto-join never startsOn start is Join on Play (the default) — press Play. Or TC is still in pre-roll / past the end.