Skip to content

Building a show

This is the complete workflow for programming a show in Helm DJ. It assumes the app is installed, licensed, and seeing your decks — if not, start with Getting started.

The short version:

  1. Create a setlist
  2. Get the tracks into it
  3. Set each track’s timecode offset
  4. Program cues on each track
  5. Configure outputs (timecode + MIDI)
  6. Rehearse with LIVE disarmed
  7. Go live

Go to the Tracks page. In the left sidebar, open the list picker and choose + New List…. Name it after the show (Mainstage Friday, Club Tour A).

The active setlist is the one the cue engine works from — cues only fire for tracks in the active list. You can keep multiple setlists (one per show, one for rehearsal) and switch between them; see Tracks & setlists.

Three ways, mix and match:

Capture from a deck (most common). Load the track on any CDJ. Then either:

  • On the Tracks page, click the capture button for that deck in the sidebar, or
  • On the Decks page, click Capture on the deck card — this also jumps you straight to the track’s detail view.

Capture pulls the track’s metadata (title, artist, BPM, duration) and waveform from the CDJ.

Add manually. Use the add-track form in the sidebar when you’re programming ahead of time without the USB — enter title, artist, BPM, duration. Later, when the real track is loaded on a deck, link the placeholder to it from the track detail view.

Import a bundle. If someone else already programmed the show, import their .helm bundle — see Tracks & setlists.

If you’re driving a timecode-programmed lighting desk or media server, each track needs a Start Offset — the timecode value the outside world should see when this track starts.

Select the track, find Start Offset in the metadata row, and type the timecode (HH:MM:SS:FF). A common scheme is one hour per track: track 1 starts at 01:00:00:00, track 2 at 02:00:00:00, and so on — so the desk always knows exactly which song it’s in no matter what order the DJ plays them.

When the track plays, Helm DJ outputs start offset + elapsed time as LTC/MTC.

Select a track, scroll to the Cues section, and add cues with the trigger buttons:

  • + On-Load — fires when the DJ loads the track onto a deck. Typical use: preset the desk to the song’s base look before it even starts.
  • + On-Play — fires when the deck starts playing.
  • + On-Unload — fires when the track is ejected or replaced.
  • + Timeline — fires when the playhead crosses a time you set. This is your workhorse for drops, breakdowns, and scene changes.

Click any cue to open the editor: name it, set the trigger time, choose the action (MIDI note, CC with optional fade, external command, or a no-output marker), and hit Test to fire it immediately and verify the receiving end reacts. Full detail in Cues & triggers.

A programmed track — start offset, reference audio, and four cues

There are also On-Air / Off-Air trigger types (fires when the DJ brings the channel fader up/down on the mixer) — add a cue with any trigger, then change the trigger type in the editor.

MIDI cues: Settings → MIDI → set the Cue Output Port — the default port every MIDI cue uses unless a cue overrides it.

Timecode: Settings → Timecode → set the frame rate, pick the master LTC device (or MTC port under Settings → MIDI), and choose the source mode — Auto (on-air) is right for most shows: timecode follows whichever deck is actually live through the mixer. For multi-deck timecode (each deck feeding its own line), set per-deck routing. Full detail in Timecode & MIDI.

BPM to Resolume/etc: Settings → MIDI → MIDI Clock (BPM) — enable, pick a port, done. See Timecode & MIDI.

Click LIVE in the top bar so it goes dark — automation disarmed. Now play through the set:

  • Watch the Decks page: waveform playheads, cue countdowns in the expanded cue panel.
  • Watch the cue activity panel at the bottom — every trigger appears with what it would have sent, marked as blocked. You verify the whole show without a single MIDI message leaving the machine.
  • For cues you want to hear for real during rehearsal, use the Test button in the cue editor, or arm LIVE and use each cue’s live_only flag to keep show-only cues quiet while off-air.

Fix timings by dragging cue markers on the waveform. Changes save automatically (watch the Saved cell in the health bar).

  • Click LIVE so it lights up.
  • Confirm the health bar is all green: decks online, MIDI port set, LTC device streaming.
  • Keep the Decks page up. The cue activity panel tells you in real time exactly what fired and with what values.

If anything on stage misbehaves: STOP. Everything goes quiet — cues, LTC, MTC, MIDI Clock — until you clear it.

  • DJ loads a track that isn’t in the setlist — the deck card shows Capture / 📋⇨. Capture & Copy lets you pull cues across from a similar programmed track in seconds. See Tracks & setlists.
  • Same song, different USB — with Track Matching on (the default), Helm DJ recognises it by content and your cues fire anyway.
  • A cue misfires repeatedly — open it in the editor and disable it (the toggle keeps it in the list for later), or disable that entire deck’s automation from the runtime controls.