GrandMA3 Session Sync
TheatreWhat it's for — Session Sync moves your Theatre cue list between CueSync and a grandMA3 console without re-programming. Push your cue structure to the desk (so the LD programs looks against real cue numbers), read the desk's cue list back into CueSync, or hand-carry it on a USB stick as an MA3 macro — all from one dialog.
Desk-verified. The push command set, cue deletion, follow-time pushes, and the macro / Timecode XML / bridge-plugin imports are verified against grandMA3 2.3.x and 2.4.2 (onPC). As with any console workflow, do one dry run on your own desk and software version before show use — the dialog previews every command it would send.
The dialog, region by region
Everything happens in one Sync to GrandMA3 dialog:
Preview banner (top) — "PREVIEW — review the commands below. Nothing is sent until you explicitly Send and confirm." The dialog never touches the console on open.
Bridge status row — Shows whether the optional read-back bridge is alive on the console: "Bridge: not detected — cue-list read-back off (optional)" or, when running, the bridge version, console device, and MA3 software version in green. The Install bridge… button exports the console plugin (see below).
Target sequence — A segmented control choosing which console sequence to write into: 900 / 950 / 999 (deliberately high "scratch range" numbers so you never collide with the LD's programming).
Diff preview — A live dry-run of exactly what a push would do: "First push → sequence 900 · +12 added" on a fresh sequence, or "Merge sync → … · +2 added · ~3 updated · 7 unchanged" against an earlier push. Every MA3 command that would be sent is listed. If nothing differs, it says "Already in sync — nothing to send."
Options — Two safety toggles, both off by default: Delete removed cues on console (off = additive-only; cues you removed in CueSync are listed but kept on the desk) and Push follow times (auto-advance) (cues after the first get an MA3 Time trigger with the gap to the previous cue, so one Go plays the sequence back at show spacing — leave it off when the desk fires from timecode, otherwise cues would double-trigger).
Action buttons — Send to GrandMA3… (the live push), Export MA3 macro (USB)… and Export Timecode XML (USB)… (the offline routes), Import Timecode XML… (the file pull), and — when the bridge has a verified snapshot of the selected sequence — Adopt console as baseline and Import as Theatre track (the network pull lanes).
The four workflows
1 · Push to the console (live, over the network)
- Connect a GrandMA3 (UDP) output in Network Outputs and confirm it shows connected. UDP is the recommended transport — current consoles don't open an OSC-over-TCP listener, so a TCP output may never connect. On the console's OSC line, enable both Enable Input and Receive Command — without Receive Command the desk silently ignores every command CueSync sends.
- Open File → Sync to GrandMA3…, pick the target sequence, review the diff.
- Click Send to GrandMA3…, read the confirmation summary, and click Confirm send.
- On success: "✓ Sent N commands to GrandMA3 sequence 900."
The merge never re-stores existing cues. On a re-push, cues already on the desk are only relabelled or retimed — the looks your lighting designer stored into them survive untouched. Only genuinely new cues are stored. If a send fails partway, CueSync tells you exactly where it stopped, keeps its sync baseline, and the next push re-plans just the unsent changes.
2 · Read the console back (the bridge)
The bridge is a read-only Lua plugin that runs on the console and streams its cue list to CueSync over OSC — so the dialog can warn you when someone edited the sequence on the desk.
- Click Install bridge… and pick a folder. CueSync writes three files:
cuesync_bridge.lua,cuesync_bridge.xml, andINSTALL.txtwith the exact console steps. - On the console: copy the files to a USB stick under
gma3_library/datapools/plugins/, set up an OSC line pointing at the CueSync machine (port = CueSync's OSC input, default 9001), import the plugin into a Plugin pool slot, and tap it to start. - Back in CueSync, the bridge row turns green when messages arrive.
The plugin only ever sends — it contains no Store, Delete, Label, or Go calls. Messages carry a per-machine session token; if the row reports token mismatches, re-export the plugin from the machine you're syncing from.
3 · Carry it on a USB stick (macro or Timecode XML)
No network to the desk? Two file exports, side by side in the dialog:
- Export MA3 macro (USB)… — writes
CueSync Export.xml, an MA3 macro pool containing the same commands as a push, plus a README with the import command. On the desk:Import Macro "CueSync Export"and run it. A macro is always a full push (no merge/diff semantics). - Export Timecode XML (USB)… — writes a native MA3 Timecode object (the
gma3_library/datapools/timecodes/format the MA3 ecosystem exchanges). Import it on the desk to get a timecode show whose events Goto your cues at their trig positions.
The reverse also works from a file: Import Timecode XML… reads a Timecode XML the desk itself exported (Export Timecode X) and creates a CueSync Theatre track from it — cue numbers, names, and trig positions, no actions.
4 · Pull from the console
When the bridge has a verified snapshot of the target sequence, two pull actions appear:
- Adopt console as baseline — records the desk's current cue list as the sync baseline, so the next diff honestly reflects desk-side edits instead of fighting them. Use it after the LD renumbers or retimes cues on the console.
- Import as Theatre track — creates a new CueSync show track from the console's cue structure (numbers, names, trig-time positions — no actions), fully undoable. This replaces the old export-timecode-to-USB round trip: build on the desk, pull into CueSync, run with CueSync's transport.
Common tasks
- First push of a new show — Connect the GrandMA3 (UDP) output, open the dialog, pick sequence 900, review the "First push" diff, Send, Confirm.
- Re-sync after editing in CueSync — Open the dialog again; the diff shows only what changed. Send. Existing desk cues keep their looks.
- Catch desk-side edits — Install the bridge once. If the desk's sequence drifts from the last sync, the dialog warns you before you push and offers Adopt console as baseline.
- Rescue a console-only show into CueSync — Start the bridge, open the dialog, click Import as Theatre track.
Tips & gotchas
- Everything is blocked during a live show. Syncing is an authoring-time operation; stop the show first. The push lane additionally requires CueSync Theatre or Production and a connected GrandMA3 output (UDP or TCP).
- Additive by default. Cues you deleted in CueSync stay on the console (listed in the diff) unless you explicitly enable "Delete removed cues" — deletes skip the console's confirmation pop-up, so review the diff before sending.
- The scratch-range sequences (900/950/999) are yours. Treat them as CueSync's workspace on the desk. Program looks into the cues there, but let CueSync own the cue numbering and timing.
- A partial send is recoverable. "Send FAILED at … — X/Y sent" means the console sequence may be half-written: check it, fix the connection, and push again — the diff re-plans only what's missing.
- The bridge is optional. Pushing and macro export work without it; the bridge only adds read-back (drift warnings and the pull lanes).
Related
- Network Outputs — Add the GrandMA3 (UDP) connection the push lane uses
- Looks & Scenes — The GMA3 Stage Brain looks your cues fire
- Show Editor — Build the Theatre cue list you're syncing
- Timecode — Run the synced show against a shared clock
Looking for a quick fix?
The Help Center has short task-focused articles and a support team that responds within 24 hours.