LTCast LTCast
/ Per-song trigger lists
Manual › Per-song trigger lists

Per-song trigger lists

LTCast keeps triggers separated by song. A trigger you create for Song 1 will never fire during Song 2 or Song 3. This mirrors the way lighting desks and media servers organize cue lists per number — each song is its own self-contained show file fragment.

Viewing and editing a song's triggers

To see a song's trigger list, first make the song active by clicking it in the setlist. Then open the TRIGGERS tab in the right panel (see What triggers are if it is not visible). The list shows all triggers for that song sorted by timecode from earliest to latest.

To add a trigger, use the form at the bottom of the tab: type a name (required), type the timecode — or click Now to take the current timecode — choose the type (NOTE, CC, PC, MSC or OSC) and its parameters, then click + Add Trigger. The button stays greyed out until there is a name and a valid timecode. To edit an existing trigger, double-click the field you want to change — timecode, name, type, channel, note / CC / program number, value, or OSC address and arguments. A single click only selects the row.

What a row shows

The top line of each trigger has, from the left: the on/off switch, the ▶ test-fire button (see Test fire), the timecode, the name, and at the right a duplicate button (it copies the trigger one second later) and a delete ×. The small clock button beside the timecode sets the trigger to the current playback position. The second line describes the message, for example channel, note and velocity, or the OSC address and arguments. For NOTE, CC and PC triggers it also has a Learn button that waits for the next matching message from the MIDI input chosen in Settings → Devices and copies its channel and number into the trigger; it is greyed out until an input is chosen.

A Before song or After song flag appears on a trigger whose timecode lies outside the timecode range of the song, and a line above the list counts them. A trigger before the song fires the moment you press Play, together with every other trigger like it; a trigger after the song is never reached.

Importing triggers from markers

If the song already has cue markers on the waveform, you can convert them into triggers automatically. Click From markers at the top of the TRIGGERS tab (it appears when the song has markers). LTCast creates one trigger for each marker, using the marker's position as the trigger timecode and the marker's name as the trigger name. Imported triggers respect the song's own start timecode, and they inherit the type, channel and values currently set in the add form rather than always being MIDI notes — so pick the type you want before importing. The MIDI note (or CC or program) number goes up by one for each trigger, starting from the number in the form. An OSC address with a {n} placeholder counts up 1, 2, 3 … across the batch.

Importing from markers adds new triggers — it does not overwrite or remove triggers that already exist in the list. A marker whose timecode already has a trigger is skipped, so importing twice does not create duplicates. Check the list after importing, because every imported trigger uses the same type and values from the form.

Working with the list

  • Selecting — click a row to select it, Shift-click for a range, Ctrl / Cmd-click to add or remove one. Ctrl+A selects the whole list.
  • Batch bar — with rows selected, the bar above the list changes the output type, the OSC address, or shifts the timing of every selected trigger at once; the right-click menu offers Sends → a type, Enable, Disable and Delete for the selection, while the timing shift (in seconds, applied with Enter) and the OSC address are on the bar only. Editing a field in the list changes that one trigger, editing in the bar changes all of them, and each batch edit is a single undo.
  • Copy, paste, duplicate — Ctrl+C, Ctrl+V, Ctrl+D. A paste lands on the playhead and keeps the original spacing; with the transport stopped it lands on the song's own start rather than at 00:00:00:00, so a paste cannot arrive outside the song.
  • Filter by protocol — when a song holds both MIDI and OSC triggers, a filter appears (all / MIDI / OSC). The list itself stays one list, because a show fires in timecode order.
  • Editing text — a single click selects the row; double-click a text field to edit it.

Changing a song's start timecode asks whether its triggers should move with it. Correcting a mistyped start and rebasing a show onto another hour want opposite answers, and the number you typed cannot tell them apart.

Trigger output is global, not per-song

All songs share a single MIDI output port for triggers, the Trigger MIDI port in Settings → Outputs, beside the OSC targets. You cannot assign a different port, channel, or device to individual songs. If you need to route different songs to different MIDI devices, use a virtual MIDI router (such as loopMIDI on Windows or the IAC Driver on macOS) to split or redirect the output port externally.

When building a setlist, fill in the triggers for each song during pre-production and use test fire during soundcheck to verify all songs before the doors open. Triggers are saved as part of the preset file, so they travel with the setlist when you share or collect the project.

Song switching and trigger state

When you switch to a new song (manually or via auto-advance), LTCast immediately swaps the active trigger list. Any trigger from the previous song that did not fire is discarded — it will not fire on the next song. Triggers from the new song's list become active as soon as the song loads and playback begins.