Remote Control: Sequencers
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 |
|---|---|---|
|
|
— |
Every sequence in the project, each as a status object. Use it to discover exact names |
|
|
— |
The status object for one sequence |
|
|
— |
Plain transport |
|
|
— |
Fire the sequence's trigger input |
|
|
— |
Fade up; |
|
|
— |
Fade down, optionally pausing or stopping at the end of the fade |
|
|
|
Jump to a fractional position within the duration |
|
|
|
Jump to an absolute time position |
|
|
|
Playback speed: |
|
|
|
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 |
|---|---|
|
|
The sequence's name — the sole identifier |
|
|
|
|
|
Current position and total length, both in seconds |
|
|
Whether the sequence repeats instead of ending |
|
|
Current playback speed |
|
|
Current fade multiplier, |
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 found —
targetmust match the name exactly, including case. Runseq.listto read back the real names. -
seekandjumpconfused —seektakes a fraction of the duration,jumptakes seconds. Sending{"frac": 42}does not go to 42 seconds. -
A fade appears to do nothing — check
fadein the status. If it is already at the target value there is nothing to fade, and afadeaction sets the multiplier immediately rather than ramping. -
Playback looks frozen —
tempomay be0, which is a paused sequence still reportingPlaying. Read the status rather than inferring from the transport command you sent. -
A response does not mean it happened —
accepted: trueonly means the command was queued. Subscribe, or readstatus, to confirm.
Related
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
