How To

Command Cue Language

A Command cue holds a multi-line script. Each line is one command, and they run in order, top to bottom, when the cue fires. It is the way to do in one cue what would otherwise take a handful of Start / Stop / Fade cues: especially across cue lists.

Blank lines are ignored, and anything on a line after # or // is a comment. Commands are not case-sensitive.

#The shape of a line

<verb> [list <N or "name">] [cue <number>] [arguments]

The optional list part targets another cue list: either its tab position (list 2) or its name in quotes (list "Act Two"). Leave it out and the command acts on the Command cue's own list. It is ignored by osc and panic.

Note that list is a PREFIX, not a command in its own right: it always follows a verb. A line that starts with list on its own is not understood: write go list "Act Two" to press GO on that list, go list "Act Two" cue 5 to fire a cue on it, or stop list "Act Two" to stop it.

#Transport

  • go: press GO on that list (fires its armed cue and advances its playhead). This one only makes sense with a list prefix: a bare go on the Command cue's OWN list would re-fire the Command cue itself, so it is refused with a message rather than looping
  • go cue 5: move the playhead to cue 5 and fire it from its start. fire cue 5 and goto cue 5 do the same thing. Note this MOVES the playhead, unlike a Start cue, which fires its target where it stands
  • go cue 5 time 30: the same, but the cue starts 30 seconds in
  • load cue 5: arm cue 5 without firing it; the next GO plays it
  • stop: stop everything playing on that list
  • stop cue 5: stop just cue 5
  • pause / resume: pause or resume that list
  • panic: stop everything, everywhere (ignores any list prefix)
  • select next / select previous; move the selection without firing
  • goto time 12.5; seek whatever is PLAYING to 12.5 seconds, without re-firing it. goto time 0 sends the running cue back to its start. If nothing is playing there is nothing to seek, and the line reports that, to start a cue at a position instead, use go cue 5 time 12.5
  • hotkey Q: fire whichever cue has Q as its hotkey

#Changing cues

  • arm cue 5 / disarm cue 5; force a cue enabled or disabled
  • set cue 5 volume 0.5; write a cue property

Properties you can set: name, notes, hotkey, volume, pan, fadeIn, fadeOut, preWait, postWait, loopCount, startPoint, endPoint, playbackRate, pitchCents, isLocked, isDisabled, videoBrightness, videoContrast, videoSaturation, videoHue, videoBlur, stopTarget, fadeTarget, fadeDuration, fadeTargetVolume, gotoTarget, loadTarget, armDisarmTarget, armDisarmAction, devampTarget, commandText. These are the same names AppleScript uses, and a set is a real edit: it is saved with the show and undoes with ⌘Z.

#OSC

  • osc /eos/go 1 2.5 "go": send to the OSC output host set in Show Settings
  • osc to 10.0.0.5:8000 /eos/go 1; send to a specific host and port instead

Arguments are typed by how they look: a whole number becomes an integer, anything else numeric becomes a float, and everything else is a string. Quote a value to keep it a string.

#Examples

Start a video on the main list and a light look on another, from one GO: go cue 12 go list "Lighting" cue 40

Kill an overrunning pre-show list and take the house down: stop list 2 go list 1 cue 1

Set a cue up before firing it: set cue 8 volume 0.4 set cue 8 fadeIn 3 go cue 8

#Writing them

The editor colours what you type (known verbs green, unknown ones red, with keywords, numbers, strings, and OSC addresses tinted) and suggests completions as you go, including the cue numbers and cue-list names in this show. Under the editor, every line gets a ✓ or a ⚠ with the reason, so a typo shows up while you are editing rather than at showtime.

Click Command reference beside the COMMAND SCRIPT heading to open the Command Reference window. It lists every command grouped by what it does, with a copyable example beside each one : click the copy button on a row and paste it straight into your script. There is a search box at the top, and the window can stay open beside the inspector while you write.

If a line fails when the cue fires (a cue number that no longer exists, say) the error appears in the banner at the top of the main window naming the line number, the remaining lines still run, and the follow chain continues.