Remote Control: Sequencers

Last updated 7 August 2026

How to drive a sequence from outside Backstage — transport, position, speed and fades, plus live playback state.

This page covers controlling a sequence. Building one is done in the Sequencer window.

Before you start

  • A sequence exists, with its channels assigned and its assets placed as events
  • Its name is settled — every route addresses it by name
  • For the protocol: Settings > Remote Control > Enable Show-Control Protocol is on (off by default)

JSON protocol — domain seq

Send newline-delimited JSON to TCP 7400 (or UDP 7401 if enabled), with target set to the sequence's exact name, case-sensitive.

Actions

Action

Args

Effect

list

Every sequence in the project, each as a status object. Use it to discover exact names

status

The status object for one sequence

play, pause, stop, restart

Plain transport

bang

Fire the sequence's trigger input

fadein, fadeinplay

Fade up; fadeinplay also starts playback

fadeout, fadeoutpause, fadeoutstop

Fade down, optionally pausing or stopping at the end of the fade

seek

{"frac": 0.0–1.0}

Jump to a fractional position within the duration

jump

{"time": <seconds>}

Jump to an absolute time position

tempo

{"value": <speed>}

Playback speed: 1.0 normal, 0 paused, 2 double, negative runs in reverse

fade

{"value": 0.0–1.0}

Set the fade multiplier directly, rather than running a fade action

{"domain":"seq","action":"list"}
{"domain":"seq","action":"play","target":"Show A"}
{"domain":"seq","action":"seek","target":"Show A","args":{"frac":0.5}}
{"domain":"seq","action":"jump","target":"Show A","args":{"time":42.5}}
{"domain":"seq","action":"tempo","target":"Show A","args":{"value":0.5}}

The fade actions belong to sequences, not to steppers. That is why a stepper's custom command patch describes itself as "forwarding actions to the active sequences" — over the protocol you address those sequences directly in this domain.

Status

Field

Meaning

name

The sequence's name — the sole identifier

state

Playing, Paused or Stopped

time / duration

Current position and total length, both in seconds

looped

Whether the sequence repeats instead of ending

tempo

Current playback speed

fade

Current fade multiplier, 01

Live status

{"domain":"sys","action":"subscribe","args":{"domains":["seq"]}}

Backstage then pushes an immediate snapshot, an event on every state change, and a heartbeat roughly every 3 seconds — so a dropped frame self-heals without a polling loop. time advances during playback, which makes this the natural feed for a progress readout on a control surface.

Web Console — the Sequencer block

Drop a Sequencer block onto a Web Console page for play, pause and stop plus a live progress bar, pre-bound to that sequence. Sequencer (Node) binds by node label instead, so the block follows whichever sequence that node currently drives.

Node editor — pins and custom schemes

A Sequence:Sequence node references a sequence and exposes it to the graph:

  • Action input — takes a transport action, the same vocabulary as the protocol

  • Set time input — drives the playback position, which is how timecode chasing is wired

Tick Advertise in the node's options, with a Sequence:Announcer node set to Advertised, to broadcast sequence state onto the network for another Backstage or a Conductor to follow.

Common Mistakes

  • 404 sequence not foundtarget must match the name exactly, including case. Run seq.list to read back the real names.

  • seek and jump confusedseek takes a fraction of the duration, jump takes seconds. Sending {"frac": 42} does not go to 42 seconds.

  • A fade appears to do nothing — check fade in the status. If it is already at the target value there is nothing to fade, and a fade action sets the multiplier immediately rather than ramping.

  • Playback looks frozentempo may be 0, which is a paused sequence still reporting Playing. Read the status rather than inferring from the transport command you sent.

  • A response does not mean it happenedaccepted: true only means the command was queued. Subscribe, or read status, to confirm.

Remote Control — the three routes, and every other controllable element

Remote Control: Steppers — steppers, which drive sequences step by step

Enable and Configure the Show-Control Protocol — the protocol in full: transports, auth, allowlist, the reference client

Sync to Timecode (LTC) — chasing LTC timecode, the clock-driven alternative to commanded transport