Desk Verification Checklist
Some of what CueSync sends has been graded against real equipment and some has not. This page is the list of what still needs a console, in the order it is cheapest to check, so a session in front of a desk answers as many open questions as possible.
Each item names the claim, what to do, and what result would mean the code is wrong. Where a check
fails, the fix belongs with the code that makes the claim — every one of these is annotated ⏰ at
its source.
grandMA3
1. Timecode pool slot. Every Timecode object CueSync exports carries TCSlot="1", hard-coded.
The Setlist Book export tells the operator to Import Timecode <slot> at slot = the song's sequence
number, and the auto-arm lane sends Go+ Timecode <sequence> — so if TCSlot is the same thing as
the import slot, a twelve-song setlist writes twelve objects that all claim slot 1.
Check: export a two-song setlist, import both at their own slots, and read the Timecode pool. Both objects present at their own slots, each firing its own sequence, means the field is cosmetic on import and the hard-coded value is harmless. Either object missing, overwritten, or armed by the wrong slot means it is not.
2. Setlist auto-arm command form. Off Timecode <n> / Go+ Timecode <n> is used to release and
arm a song's Timecode pool object. Accepted in the 2026-08 grammar session, but its effect was
never confirmed on 2.4.x.
Check: arm one song, confirm the object runs; load the next track and confirm the previous object stopped and the new one started. A previous object still running is the failure — two clocks firing the same rig.
3. Effect speed and size units. The editor labels these "Speed %" / "Size %" and the handler
sends Effect N Speed 100 for an authored 100%. What MA3 2.4.x does with that value is not
established anywhere in this repo.
Check: author 50% and 100%, read the effect's speed off the desk. If the desk wants a different unit, the conversion belongs in the handler and the editor's read-back together — not one alone.
4. Speed master rate. SpeedMaster N Rate <bpm> returns OK: but the console echoes it back
re-tokenised, which is the "green cue, nothing happened" shape.
Check: set 120 then 60 and read the speed master's BPM off the desk.
QLab — ✅ done 2026-09-03 (QLab 5.6.3)
Both items below were run into a real QLab 5.6.3 and both passed, so they are recorded rather than
open. The session also found five things nobody had asked about, which are now fixed and pinned by
QLabAccessAndScopeTest — the summary is here because the two most serious are things an operator
has to know, not only things the code has to do.
5. Workspace scoping. ✅ CORRECT — and no longer optional. With two workspaces open and the decoy in front, a command scoped to the back workspace reached it, left the front one untouched, and did not change which workspace was front. Both transports behave identically. A deliberately bogus workspace id fired nothing anywhere, so the prefix is genuinely honoured rather than ignored.
What changed: the field is no longer only a nicety for two-workspace rigs. With a second
workspace open, QLab 5.6.3 discards the /cue/<number> segment of an unscoped address and runs
what is left as a workspace-level command — a GO fires whatever sits at the playhead and advances
it, a stop aimed at one cue stops them all, and both are answered ok. The property setters
(start, rate, level, preWait, duration, opacity) have no workspace-level equivalent and
answer error. With one workspace open the unscoped form is correct in every case tested. So:
one workspace, the field is optional; two, it is required.
6. Start-a-cue and playhead. ✅ CORRECT. /cue/<n>/start fires the cue and leaves the playhead
where it was; /playhead/<n> moves the playhead and fires nothing. Confirmed on both transports
and through QLabHandler.
Also settled that day, all now fixed:
- A factory-default QLab 5 workspace refuses everything. Settings → Network → OSC Access ships
with its "No Passcode" row granting neither View, Edit nor Control, beside a QLab-generated
four-digit passcode row that grants all three. Every command answers
"status":"denied". Outputs now carry a QLab passcode which is sent as/connect <passcode>, and a refusal is reported instead of passing as a green cue. An operator who would rather not use a code can tick View/Edit/Control on that "No Passcode" row instead. /updatesis connection-level, not workspace-level. It was being scoped, which QLab answerserror— so setting a workspace id silently killed the cue-state feedback lane. Now unscoped./workspacesis the only workspace-name query QLab 5.6.3 answers./workspace/<*>/name,/workspace/<id>/nameand/workspace/nameall answererror; the reply to the first of those used to be stored as the workspace name./workspacesalso returns every open workspace's id and display name, which is what CueSync now logs at connect so an operator can find the id for the field above./cue/<n>/slicePosition— the address the QLab timecode sink builds — is answerederrorin every combination tried (scoped and unscoped, cue stopped and running)./cue/<n>/playbackPositionerrors too, so the correct address is still unknown and this one stays open. ⏰
Raw logs, frame transcripts and the harness: ~/cuesync-audit-2026-09-03-qlab/.
Art-Net and sACN
7. The one thing that keeps these behind a beta label. Both emit real, spec-checked traffic — the packet layouts are verified against Art-Net 4 and E1.31 in tests — but nobody has run either into a physical node and confirmed fixtures move.
Check: one node, one universe, one channel to full. That single observation is what the label is waiting on; do not soften the wording anywhere until it happens.
Avolites, Pixera, MagicQ
8. These three are built to the manufacturer's published interface and pinned to byte-exact wire fixtures, but have never been run against the real program. Any cue that reaches the desk and does what the cue row says is a useful data point; record what you tried.
Related
- Protocol Reference — transports, ports, and how far each is proven
- What Each Action Can Send — the verb list per action
Looking for a quick fix?
The Help Center has short task-focused articles and a support team that responds within 24 hours.