Space Hijack
Sometimes you may wish to hijack the space bar so that when you use it to GO, you can execute some other actions in addition to the normal GO command. This might include logging a timestamp for the go, or some custom cue list behavior.
We’ll show two examples in this chapter. The first example will create a behavior that skips disarmed cues in a simple linear cue list. The second example, which only works in QLab 4, creates visible cue announcements when cues are run.
Skip Disarmed
Here it is in action:
How it works
First, un-assign the space bar in Workspace Settings → Key Map
Next, create a Script cue and assign the space bar as its hotkey. If you use a MIDI device to trigger QLab, assign the message for your device’s GO button as the MIDI trigger for the Script cue as well:
Here’s the script for the Script cue. Be sure to un-check the box marked “Run in separate process”:
set skip to true
tell application id "com.figure53.qlab.3" to tell front workspace
go
repeat until skip is false
set thecue to last item of (selected as list)
if the armed of thecue is false then
moveSelectionDown
else
set skip to false
end if
end repeat
end tell
Cue 16 in this workspace is quite interesting; it doesn’t run the auto-continue from the disarmed cue. This might or might not be what you want.
It’s worth noting that all but the most simple workspaces will encounter issues like cue 16. If you’re interested in a more robust method for skipping blocks of cues, check out the Skip A Cue chapter.
Cue Announcer (QLab 4.0 or later)
This example uses OSC queries in QLab to display the name and number of each triggered cue and the next selected cue. This could be useful for a backstage or stage manager’s display, for example.
Please note that this example requires the playhead and the selection to be locked together.
Here’s a screen recording of it in action, best viewed full screen:
How it works
The spacebar is hijacked as in the above example by deselecting it in Workspace Settings → Key Map. In a second cue list, a Group cue set to “start all children simultaneously” is added:
This Group cue is triggered by the space bar and optionally by a MIDI trigger. It contains two Text cues, which will display the desired information, and two Network cues to set the contents of those Text cues using OSC queries.
When the Group is triggered, it first stops cue Line1
. Then, it sets the text
of that cue using a Network cue with this command:
/cue/Line1/text "Cue #/cue/selected/number# • #/cue/selected/listName# Triggered"
Let’s parse that out:
/cue/Line1/text
sets the text of cue Line1
to the stuff contained in the
following quotation marks.
#/cue/selected/number#
is an OSC query which gets the number of the currently
selected cue.
#/cue/selected/listName#
is an OSC query which gets the list name of the
currently selected cue. The list name of a cue is the name which is displayed in
the cue list, which could be its automatically generated name or a name that was
manually entered. name
would only return a manually generated name, and so
would return nothing if the selected cue was not manually named.
The next cue in the Group triggers the selected cue with an OSC /go
message.
This advances the selection, meaning that the selected cue will now be the cue
standing by to be triggered. Another Network cue then sets the second text cue,
numbered Line2
, using another OSC command containing queries, very similar to
the previous one:
/cue/Line2/text "Next Cue: #/cue/selected/number# • #/cue/selected/listName#"
Finally, the two Text cues display their text. Be sure to set up a video surface or open the Audition Window to see this in action.