GrandMA3
Paid editionsWhat it's for — CueSync drives a grandMA3 console over OSC. It fires executors, sequences, macros and Looks from your cues, pads, AutoPilot and Theatre cue lists, writes a Theatre cue list into a desk sequence and reads it back, and gives the desk timecode files it can import. This page covers the whole workflow, from the desk's OSC settings to show day.
CueSync does three different jobs with a grandMA3. Each has its own section below.
| Job | What happens | Where it lives |
|---|---|---|
| Control | A cue, pad, Look or AutoPilot moment sends a command line to the desk — Go+, Goto, a fader level, a macro, a blackout. | Actions on cues and pads, the Palette, Theatre cue lists |
| Prepare | A Theatre Part becomes a desk sequence: cue numbers, names, fades, optional follow times. It can also be carried on USB as a macro or a Timecode object. | File → Sync, Import & Export → Sync to GrandMA3… (Session Sync) |
| Read back | A small read-only plugin on the desk reports its sequences to CueSync, so CueSync can import them, adopt them as a baseline and warn you when someone edited them on the desk. | The bridge plugin, installed from the Sync dialog |
Compatibility
CueSync works with grandMA3 2.3, 2.4 and 2.5, on a console or on onPC. Two things differ between releases and are noted where they apply: the Timecode file format (2.4 and 2.5 differ) and the desk's feedback stream (a 2.5 desk reports per sequence). Session Sync has been run against a physical grandMA3 console, and the main command lines and the file exports have been run on onPC. As with any console workflow, do one dry run on your own desk and software version before you rely on a lane in a show; Desk Verification is the short checklist.
1 · Connect the console
On the desk — Menu → In & Out → OSC
CueSync talks to the desk through one OSC line in, and optionally hears back through one line out. Most mistakes on this page fail silently. CueSync reports the send as successful and the desk does nothing, because UDP cannot tell whether anything arrived. So check these settings once when you rig, not when a cue misses.
| Setting | Required | What goes wrong otherwise |
|---|---|---|
| Enable Input + Receive Command | both on | The desk ignores every command CueSync sends. |
| Interface / Preferred IP | the network the CueSync machine is on | The console never opens its OSC port, so nothing is listening. |
| Prefix | empty — or the same text in the CueSync output's OSC prefix | With a prefix on the desk's line and none in CueSync, none of CueSync's commands reach the desk. |
| Port | the same as the CueSync output's port (default 8000) | Nothing arrives. |
| Send + Send Command, on the line the bridge plugin uses (not the line CueSync sends commands on) | both on | The plugin's SendOSC is refused with Illegal property; the plugin says so on the desk (§7). |
| Page / Fader / Key names | leave at Page / Fader / Key | CueSync moves faders and keys as /Page<n>/Fader<id> and /Page<n>/Key<id>. Renaming these breaks fader and key moves while typed commands keep working, so the failure looks random. |
| Fader Range | 100 | Fader levels go out as 0–100. A different range scales every level. |
onPC and network changes. On onPC, the OSC input does not follow the computer to a new network. If the laptop moves from one Wi-Fi to another, or from Wi-Fi to a rig switch, the OSC input stays on the old address. When commands stop arriving after a move, open the OSC page, select the current interface and re-enable the input line. If that does not help, look at Preferred IP itself: it ships as 10.0.0.0/8, and on any other network the console never opens its OSC port. Set it to your network, for example 192.168.1.0/24. Confirm on a Mac with lsof -nP -iUDP:8000.
In CueSync
- Network → Outputs → Add Output, then choose grandMA3 (UDP). It is the default for a new output, and the dialog marks it UDP OSC (recommended).
- Enter the console's IP address. The port fills in as 8000.
- On a machine with more than one network (a show LAN and venue Wi-Fi), pick the one the desk is on under Bind Interface; otherwise the computer chooses the route.
- Save. The output connects immediately.
What "connected" means for UDP. A UDP output shows green when the console's computer answers a network ping. That does not prove the OSC input is on or that the desk accepts commands. One failure is caught for you: if the desk closes its OSC port (onPC does, silently, after a network change or when Preferred IP does not match), CueSync marks the output Desk refusing UDP with a card on screen, and Session Sync will not write to it. The clearest proof remains the desk's Command Line History: every CueSync command appears there as it lands.
| History shows | Meaning |
|---|---|
OK: | Accepted and executed. |
Cannot Create Object: / Illegal object: | The desk parsed the line but the object does not exist, or it could not read the reference at all. Nothing happened on stage. |
| nothing at all | The message never reached the desk. Go back to the table above. |
grandMA3 (TCP) needs an OSC line in TCP mode on the desk (the line's Mode); a UDP line opens no TCP listener. UDP is the default and the recommended transport.
Do not add both transports for one desk. CueSync fires every grandMA3 action down every transport it has, so one desk with a UDP and a TCP output receives each command twice. A Go+ advances two cues. The Add Output dialog warns you with "Every cue would reach this device twice". A Tour Pack import or a venue profile can add outputs without that warning, so check the output list after applying one.
A network scan will usually not find a grandMA3. The desk does not advertise itself, so treat any "grandMA3" row a scan lists as a guess and add the desk with Add Output → grandMA3 (UDP).
More than one desk (main + backup). An action with no output chosen goes to the first connected grandMA3 output. To reach a specific desk, pick that output in the action. To reach every desk, set the action to broadcast. A Theatre cue goes where its Part's or lane's routing sends it, and Flight Check grades each routed desk separately.
Schedule on the console's clock is not offered for grandMA3. The desk does not act on OSC bundles, so the option does not appear for a grandMA3 output, and a show saved with it ticked sends plain messages. Pre-fired cues on a grandMA3 output are timed by Pre-fire and Latency comp. alone.
2 · What a grandMA3 action can do
Add an action to a cue or a Cue Pad and pick one of three grandMA3 action types:
- GrandMA3 — the general action, with a verb picker.
- GrandMA3 Sequence cue — drives a sequence directly: Goto a cue (with an optional fade), Go+, or Off.
- GrandMA3 Sequence level — a sequence's master level, or Go+ / Go−.
The GrandMA3 verb picker
Pick what the action does. Only that verb's fields appear, and the Sends: strip above the form shows the exact command line the desk will receive, line for line, including the lines of a verb that sends more than one. Read it before you save. An action does exactly one thing, so any field left over from another verb is discarded.
Executors are addressed as page.executor, and CueSync writes that as Page p.e, the form grandMA3 accepts. (Exec 1.201 is not the same thing on MA3. It addresses executor 1201 on the current page.)
| Verb | The desk receives |
|---|---|
| Go+ | Go+ Page p.e — the default |
| Goto cue | Goto Cue N Page p.e |
| Go− | Go- Page p.e |
| Off | Off Page p.e |
| On | On Page p.e |
| Fader level | FaderMaster Page p.e At L (0–100) |
| Tap tempo | Learn Master 3.n on a speed master (the Speed master box) |
| Flash | Flash On Page p.e while held, Flash Off Page p.e on release |
| Store cue | Store Cue N Page p.e /o — overwrites |
| Macro | Macro N |
| Macro by name | Macro "name" |
| Command line | your text, as typed |
| Group level | Group G At L |
| Preset | Preset "pool".n, optionally selecting a group first |
| Effect | refused — grandMA3 has no effect pool, and Effect n selects fixtures of the Effect ID type. Run the phaser in a sequence instead: Sequence level sets its level and a Speed master its speed. The built-in templates Effect Level (sequence master) and Effect Speed (speed master) do exactly that |
| Speed master | Master 3.n At BPM v (1–240 by default, settable; decimals allowed) |
| Fixture level | Fixture <selection> At L — a selection is numbers joined by Thru, + or -; MA has no And |
| Fixture attribute | Fixture N; Attribute "name" At v; v may be a decimal (12.5) |
| Sequence level | FaderMaster Sequence S At L |
| Sequence cue | Goto Sequence S Cue N, or by name: Goto Sequence "Main" Cue N |
| Blackout | Master "Grand".1 At 0 |
| Blackout off | Master "Grand".1 At L — L is the restore level (100 unless you change it) |
| Freeze / Freeze off | Freeze On / Freeze Off |
| Clear programmer | ClearAll |
Try these once on your desk before a show: Go−, On, Macro by name, Command line, Group, Preset, Fixture level and attribute, and Freeze. Group, Preset and Fixture lines also depend on your patch and the desk's own pools.
If you type your own command lines, use the full forms in the table. The desk accepts some shorter forms (a bare Page p.e At L, a bare Master "Grand" At 0) with an OK and does nothing.
Relative verbs do their thing again every time they are sent. Go+, Go−, Tap tempo and Macro don't describe a state. Fired twice, they act twice. Anything that can be re-sent — a Theatre Back or Goto (see §4), a second transport, a retried pad — should use an absolute verb instead: Goto cue, a GrandMA3 Sequence cue with a cue number, a fader level, Off. A Look that resolves to a Go+ counts as relative too: a Back, Goto or locate skips it and names it, instead of stepping the desk forward.
Blackout is a level, not a toggle. Blackout sets the Grand Master to 0, and sending it again changes nothing. Blackout off sets the Grand Master to the restore level in Settings → Advanced → grandMA3 Defaults (100 out of the box) — CueSync cannot read the level the LD had it at.
A panic sends its blackout to a UDP desk twice. The Grand Master restore on release now gets the same repeat — once, a moment later — and the repeat is dropped if a Blackout is engaged again in the meantime, so a late restore never lifts a rig you have just blacked out. A TCP desk is reliable and gets one. A restore from AutoPilot that the desk refuses stays owed for the next track.
Flash sends Flash On Page p.e and Flash Off Page p.e, so it acts on exactly the executor shown.
Tap tempo needs a speed master: it sends Learn Master 3.n, which is how grandMA3 learns a tap tempo. A saved action that taps an executor instead of a speed master is refused by name when it fires, not sent.
Speed master and BPM Sync send Master 3.n At BPM v. A tempo outside 1–240 BPM is refused, not clamped; those bounds are settable in Settings → Advanced → grandMA3 Address Limits. A speed master set to 0 stops, which is why the default floor is 1: a tempo source that drops out cannot freeze every effect.
Store cue and Clear programmer change the desk's show file or wipe the programmer, and they fire from any trigger that reaches them. Keep them on pads you press deliberately, not on beat or AutoPilot cues.
Effect needs one of Level, Speed or Size filled in. With all three empty the action is refused by name when it fires, and the Sends: strip says so. The same goes for a Speed master with no BPM, a Group with no level and a Preset with no number. None of them falls back to a Go+.
GrandMA3 Sequence level does one thing: a level, Go+ or Go−. Typing a level turns Go+ and Go− off, and ticking either clears the level. The same applies to a Look whose target is Sequence level. A saved action that carries both a level and Go+ sends Go+, and its row says Seq N Go+; retype the level to send the level.
Decimal cue numbers. grandMA3 cues can be 1.5 or 12.25, and the cue boxes take them as you type — with a dot or a single comma (1,5). Up to three decimals; a fourth is refused. A box you clear to retype keeps the old number until the new one is valid.
Ranges. Pages, executors, sequences, macros, groups, effects and presets 1–9999, cues to three decimals, speed masters and timecode slots 1–16, speed-master tempo 1–240 BPM, levels 0–100 %. Most ceilings are editable in Settings → Advanced → grandMA3 Address Limits and can be raised if your rig numbers past them; the page and cue ceilings are the desk's own limits and can only be lowered.
Fixture selections are the ones you would type on the desk: 5, 1 Thru 10, 1 + 3 + 5, 1.1, 1 Thru. Use + where you would otherwise want And. Anything else is refused before it leaves the app.
Command line actions keep your ; (it chains commands on the desk), but a line containing a tab, a line break or another control character is refused.
Default addresses. Where CueSync picks an executor for you — AutoPilot's set a look, new built-in pads, action templates and starter Looks — it uses Settings → Advanced → grandMA3 Defaults: page 1, executor 201 out of the box (on a stock grandMA3 show executor 1.1 is unassigned and the first main fader is 201). Saved cues keep the executor they were saved with. AutoPilot's master level sets the Grand Master.
3 · Looks on a grandMA3
A Look is a named, reusable target. Cues and AutoPilot fire the Look, and you can repoint the Look without touching any cue. On the Looks screen, create a Look, choose grandMA3 as the target, then pick what it drives:
| Target | Fires | Released by (panic, track change, release group) |
|---|---|---|
| Sequence cue | Goto Sequence N Cue M, or Go+ if no cue is set | Off Sequence N |
| Executor | Go+ on Page p.e, or a fader level if one is set | Off Page p.e |
| Sequence level | the sequence's level, or Go+ | Off Sequence N |
| Preset | a group, then a preset | nothing — the tile says NO RELEASE |
| Raw | your command line | nothing |
A Preset or Raw Look can't be turned off by panic or a track change. Clear it at the desk, or use one of the first three kinds if it must be released automatically.
Release groups keep one Look of a group live at a time. Firing a member sends the previous member's release first, then the new fire. Members on the same grandMA3 sequence or executor are the exception. For example, Verse = cue 1 and Chorus = cue 2 of sequence 3. The new fire replaces the old look in place, with no Off first, so the desk crossfades between them instead of dipping.
Tile state. A Look tile turns LIVE while the desk reports it active, once the desk's OSC output reaches CueSync (§8), and returns to idle when the desk reports it off. An Executor Look turns LIVE from the executor's reported fader or key on an older desk. A 2.5 desk reports per sequence, so there an Executor Look also needs the Session Sync bridge (§7), which tells CueSync which executor holds that sequence; without the bridge the tile stays SENT. A Sequence or Cuelist Look (and a Scene holding one) turns LIVE from a 2.5 desk's sequence reports and needs no bridge; on a 2.3 or 2.4 desk, which has no such report, it reads SENT. Every other grandMA3 Look — a preset, a command line — reads SENT too. Treat SENT as "CueSync sent it", and check the stage or the desk to confirm.
Shows made in older versions may still carry GrandMA3 Look (legacy) actions. They keep firing through the Palette.
4 · Firing a show
DJ edition — beat cues, pads and AutoPilot
Beat, phrase and hot-cue triggers fire their grandMA3 actions the moment the music reaches them. With Pre-fire or Latency comp set on the output, they are sent early by that amount. A pad fires its action on press and its release action (if you set one) on release.
AutoPilot picks a Look for each moment of the track. With a CUT transition that has blackout beats, it sends Master "Grand".1 At 0 for the gap and Master "Grand".1 At L after it, where L is the restore level in Settings → Advanced → grandMA3 Defaults (100 unless you change it). It is not the level the LD had set — CueSync cannot read that. The Grand Master also comes back if a track load, a resume or another transition cuts the gap short. A panic during the gap keeps it at 0.
Theatre edition — cue lists
A Theatre cue sends its actions to the outputs its Part (or its lane) is routed to. So a main and a backup desk can run different Parts, and Flight Check tells you before doors if a routed desk is down.
- GO fires the next armed cue.
- Timecode-triggered cues fire as the show clock reaches them. After a jump in the incoming timecode, CueSync replays the cues it skipped, in show order, so the desk ends on the right look.
- Goto, Back and locating the playhead don't fire the target cue on its own. For each lane, CueSync re-sends the cue that should be in charge at that point, so the desk shows what it would show there. A relative step — Go+, Go−, Tap, Flash, Macro, Store — would move the desk on from wherever it is, so the re-send leaves it out and the run log says which cue it skipped. The Theatre cue editor warns when a cue carries one. Use absolute actions on cues a jump should restore: a GrandMA3 Sequence cue with a cue number, or Goto cue.
- Spans (a cue with an automatic Off at its end) send
Off Page p.eorOff Sequence Nwhen the span ends. If a later cue on the same lane has driven that executor or sequence since, the Off is handed over to it, so the later cue's look stays up. - The desk can drive the show too. With Remote show control switched on, a macro on the desk can arm, start, stop, pause and resume a Theatre show over OSC, naming each Part by a number you give it. It is off by default; see Remote show control for the messages, the desk macro pack and what Run Mode's REMOTE badge means.
Choose one clock owner. If the desk plays a Timecode object imported from CueSync (§5), let the desk fire those cues, and don't also route the same cues to the desk from CueSync. If CueSync fires the cues, don't import a Timecode object for them. Leave Push follow times off on a sequence the desk runs from timecode.
Panic and blackout
Panic (the blackout shortcut, the menu, the Stream Deck key) sends Master "Grand".1 At 0 straight to every connected grandMA3, and pauses AutoPilot.
Releasing the blackout brings each grandMA3's Grand Master back to 100. That applies to Release and Resume alike. It's 100, not the level the LD had before the panic, which CueSync can't read back. If the LD runs the Grand Master lower, set it again on the desk. If a desk refuses the restore, CueSync names it on screen.
When the desk drops out. An action aimed at a desk that is not connected fails and is not queued. Nothing is replayed when the connection comes back. On UDP, a desk that is powered but not listening still reads as sent. Fire a Goto to the current cue after a reconnect.
5 · Preparing the show on the desk
This is Theatre and Production work, done before the show with the show stopped. The dialog is File → Sync, Import & Export → Sync to GrandMA3… (also ⌘K → Sync to GrandMA3). Every region, button and message in it is described on the GrandMA3 Session Sync page. This section is the order to do things in, and the rules that protect the LD's work. The macro and Timecode XML exports and the bridge plugin install write files for the desk, so they need a working licence: a read-only install is told "Subscribe to … — you're in read-only mode" with a Subscribe button before it picks a folder, and nothing is written.
The recommended order
- Build the cue list in CueSync — one Theatre Part per desk sequence, cues in show order, with names and fade times.
- Clear the desk's programmer. A first push stores each cue with
Store … /Overwrite, and a Store captures whatever is in the programmer. - Connect a grandMA3 (UDP) output to the desk (§1).
- Pick a sequence. The dialog opens on the song's own sequence, or the next free one in the scratch range (900–999 out of the box, changeable in Settings → Advanced → grandMA3 Sync). Any other number works too: a sequence the LD already programmed is best adopted first through the bridge (step 8); one you know is empty takes Write to sequence N anyway.
- Read the preview. First push on a new sequence, Merge sync on one you have pushed before. Every command is listed.
- Send to GrandMA3…, read the confirmation, Confirm send.
- Check the desk. Open the sequence and read the cue list. Over UDP, "sent" means the commands left this computer and nothing more. If the bridge is running, CueSync checks its read-back once the plugin has had time to see the push, and names any cue the desk doesn't hold. Without the bridge, an "already in sync" verdict over UDP says it is CueSync's record, not the desk's.
- Hand the sequence to the LD. They program looks into the cues. From now on, every push is a merge: new cues are stored, and existing ones are only relabelled or retimed, never re-stored, so the looks survive.
- Re-sync after each edit in CueSync. The preview shows only what changed.
- Export the Timecode XML after you sync, not before, if the desk will run the show from its own timecode (§6).
The rules that protect the LD's programming
- What CueSync may write to. The scratch range always. Any sequence CueSync holds a baseline for (one it pushed, or one you adopted), by merge only. Any other sequence once you switch on Write to sequence N anyway in the Sync dialog for that push (it Stores over whatever is there), or every sequence with Allow writing to any grandMA3 sequence in Settings → Advanced.
- Cues keep their desk numbers. A cue added between 2 and 3 becomes 2.5 on the desk. It does not renumber. Where the desk number differs from yours, the desk label starts with yours, like
Q2·1 - Storm, so the LD can find the cue the stage manager calls. Find a cue on the desk by its desk number. - Deletes are off by default. A cue you delete in CueSync stays on the desk until you tick Delete removed cues on console, and its number stays reserved.
- Moving a cue past its neighbour would put the desk's numbers out of show order, so the sync refuses. Renumbering means re-storing every cue, which overwrites the looks in them.
Things to watch
- Run the bridge, and adopt when it says the sequence differs. With the bridge running, CueSync never gives a new cue a number the desk already uses, so a cue the LD stored on the desk (say cue 4) is not overwritten. Your new cue steps over it — it takes the next free whole number (5 here), and the one after that 6, so appending cues never runs the desk out of decimals. Without the bridge, CueSync can't see cues added on the desk, and its next new cue could land on one of them. When the dialog says "console sequence N differs from the last sync", click Adopt console as baseline so CueSync's record matches the desk before you send.
- Adopt with the Theatre track you'll sync selected. When that track has as many desk cues as the desk's sequence, CueSync pairs them there and then, and you can add or remove cues right away. The new ones slot in between the desk's. If the counts differ, the sync refuses and says how to fix it: make the counts match (Import as show track and build on that), then adopt again, or sync to a fresh scratch sequence.
- Push everything (overwrites) appears when the show was last synced to a different console. It re-stores every cue. It asks for confirmation first, but there is no preview of that full push. Use it only when that sequence on this desk is empty or yours to overwrite.
- "Different console" is decided by IP address. A touring show that meets a different desk on the same static IP will read as the same console. At a new venue, open the sequence on the desk before trusting "already in sync".
- After a USB macro, answer the Sync dialog's question. A macro runs on the desk out of CueSync's sight. So when you export one for a sequence CueSync has no record of, the next Sync asks whether it was run. Yes: CueSync takes what the macro wrote as its record, and the push merges. No: the push is a First push that re-stores every cue.
- Push follow times gives a
Timetrigger to the cues that advance by themselves: timecode, follow and auto-continue cues. It uses the gap to the previous cue. GO and standby cues keep their Go trigger, so the desk waits for the operator. - Assign to executor puts the sequence on the executor you name (default 1.201), replacing whatever the LD had on that executor. The page must already exist on the desk: assigning to a page the show lacks does nothing.
- Colours are off by default. With Settings → Advanced → Write colours to the desk on, a push also colours every sequence it writes and each cue, in as many colours as the show uses, as Appearances in the range under Appearances for colours (9000–9999 out of the box). Two shows that colour one desk should each have their own range. Session Sync has the detail.
- Two Parts with the same name end up on the desk as
CueSync LiveandCueSync Live#2, because MA renames the second. CueSync keeps calling it by the name it pushed.
Whole setlists
With two or more Theatre tracks, the dialog offers Sync scope → Whole setlist. Each song gets the lowest free scratch sequence, saved with the show. A setlist longer than the scratch range carries on into sequences the bridge has seen the desk leave empty; without the bridge, the Setlist Book keeps to the scratch range and says so when it runs out. Then:
- Push whole setlist… pushes every song and stops at the first failure.
- Export Setlist Timecode XML (USB)… writes one Timecode file per song, timed from the song's own start.
- Export as ONE object (every part, one clock)… writes a single Timecode object covering every Part, on the house clock.
- Auto-arm song timecode arms a song's own Timecode object when a known track loads on a CDJ, or when the incoming timecode enters a song, and starts it at the right place inside the song, so arming into the middle of a song puts the object where the show is. A locate in either direction re-arms. From a CDJ, the song is armed at its top when the track loads, not when the DJ presses play, and loading the same track again does not re-arm it. Arming needs the show playing: when the show stops or pauses, is held, a blackout closes the gate, or the clock goes away, CueSync stops the song's desk object, so it does not keep firing after CueSync stops. Opening a different show releases it the same way. Each song arms at its own Timecode slot — its sequence number unless you set another in the setlist row's TC field — and two songs cannot share one, because each song's file is imported at its slot and a second song in the same slot would replace the first on the desk. CueSync refuses a slot another song holds, and the setlist row names the clash. A refused arm is retried automatically. Auto-arm arms only a song that has a desk cue firing from timecode, and it does not act on a position the clock is only extrapolating after a source was lost. Quitting CueSync sends the armed song's Off first and waits for it. A desk that comes back is placed again. After a desk reboot, an onPC restart or a show reload, the timecode slot is placed on the next running frame and the auto-arm re-arms, instead of the routing matrix reading ACTIVE over an idle slot. Two consoles, none chosen. The auto-arm writes through the console you chose in Sync to grandMA3 (step 1, Console) and never picks between two: with two consoles connected and none chosen, it says so once (the song was loaded but its Timecode object was NOT armed; choose the console to send to), and a running song moves to another console only when you choose one — a console dropping out is not a move. Flight Check names, before the doors open, the songs that will not arm for that reason, and any song whose Timecode object was never sent to a connected console. Rehearse one song change before relying on it.
6 · Timecode
There are three separate things here. Use one clock owner per show (§4).
Run a desk timecode slot from CueSync's clock. In Timecode → Output Routing, enable the grandMA3 row and pick the desk's slot. CueSync keeps that slot on its own clock: when the clock starts or jumps it positions the slot and starts it, and when CueSync's clock parks, pauses or stops, or the row is switched off, it pauses the slot. Disconnecting the output (its toggle, Deactivate All, removing it, or loading another show) pauses the slot first and closes the connection after, so the desk is not left firing its Timecode object's cues. If the clock source goes away, CueSync pauses the slot rather than letting it run on, and a reversing master holds it until the clock runs forward again, because a desk slot only runs forward. Between those the desk runs the clock itself, so the row shows no per-frame rate; expect the slot to trail CueSync's clock by a small fraction of a second. DRY RUN holds the slot. The slot fires the desk's cues by itself, so while DRY RUN (the cue-stack rehearsal toggle, Theatre DRY, the demo tour) or Hold TC is on, CueSync starts and locates nothing and pauses a slot it had running; leaving DRY RUN locates the slot to wherever the clock is. Pitched masters. The slot follows CueSync's clock with periodic corrections, so a CDJ at a pitch away from 0 % makes the desk's clock step every few seconds. Prefer an unpitched master for the slot route. A grandMA3 row that would drive the same console CueSync is following over Art-Net timecode is held, because moving that slot would fight the clock it follows; a notice stays on screen and offers Drive anyway, which lets that row drive for the rest of the session. A grandMA3 row whose slot is above the limit in Settings → Advanced → grandMA3 Address Limits is refused with a message and sends nothing; the rows around it are not affected. A timecode cue's GOTO puts the slot at its time and runs it the same way; GO starts it and OFF resets it to its start time. Art-Net timecode also drives a slot: on the desk, Menu → DMX Protocols → Art-Net, Enable Input, and a timecode row in Input mode whose Stream ID maps to the slot; CueSync's Art-Net timecode output sends stream 0.
Give the desk a Timecode object. Export Timecode XML (USB)… in the Sync dialog writes a native MA3 Timecode object:
- Copy the exported
CueSync TC <seq> - <track>.xmlto the USB stick undergma3_library/datapools/timecodes/. - On the desk, into an empty pool slot:
Import Timecode <slot> "CueSync TC <seq> - <track>" /NC(/NCoverwrites an occupied slot without asking; the README beside the file spells out the exact line). - Open the object and check that every event row shows its cue. Then play it: a setlist (per-song) file runs its own clock, so
Go+ Timecode <slot>starts it from its cursor; the single-Part and Departments files read the desk's timecode slot 1, so slave them to the show's timecode (MTC, LTC or Art-Net into slot 1).
A file written for the wrong release imports cleanly and fires nothing. The Timecode file format differs between grandMA3 2.4 and 2.5, and the desk shows an event it cannot resolve with no cue at all. The README beside the file names the release it was written for. CueSync writes for the current release (2.5.x) unless the bridge is connected to a desk that reports an older one, in which case it uses that desk's. If the events on your desk show no cue, export again with the bridge connected. A 2.5 file is ready to play: Playback and Record on and each Track bound to its sequence. At the end of its Duration the desk switches the sequence off (the Timecode's Switch Off, on by default).
Only cues CueSync fires from timecode get an event. GO, standby and follow cues get none, so the desk can't fire them early. Event times are on the house clock: show position plus the venue origin in Settings → Timecode. The event numbers are the ones CueSync's last sync put on the desk, which is why you export after syncing.
Bring a desk timecode show into CueSync. On the desk, Export Timecode <n>. In CueSync, Import Timecode XML… creates a Theatre track from the Goto events, each cue named by its cue label on the desk. An event that names no cue on the desk fires nothing there, so it is left out and the import says how many.
23.976 and 29.97 fps. At these two rates a timecode label runs 3.6 s an hour behind real time. CueSync writes real seconds. Check one event late in the show against the desk before you rely on it.
7 · The bridge plugin (read-back)
The bridge is a small read-only Lua plugin that runs on the desk and reports its sequences to CueSync. It never stores, deletes, labels or fires anything. You need it for Browse console, Adopt console as baseline, Import as show track and the differs warning. Pushing works without it.
- Turn on CueSync's OSC input first. In Settings → Advanced → OSC Input Listener, set Listen Port (9001 is the usual choice). It ships at 0, which means off. If the desk is another machine, turn on Allow other devices on the network. Leave Require signed messages off, because a console cannot sign its messages and every bridge message would be refused.
- In the Sync dialog, on the computer that runs grandMA3 onPC, click Install on this computer — the two plugin files go straight into onPC's plugin folder and the import line (
Import Plugin 900 "cuesync_bridge" /NC) is copied for you. For a desk, or onPC on another machine, click Install bridge… and choose a folder or a USB stick: you getcuesync_bridge.lua,cuesync_bridge.xmlandINSTALL.txt, which has the exact console steps. - Copy the files to a USB stick under
gma3_library/datapools/plugins/. On the desk, set up an OSC line whose destination is the CueSync machine and that port, with Enable Output, Send and Send Command on. Without Send Command the plugin'sSendOSCis refused withIllegal propertyand the bridge row stays not detected. One computer for both? A line's port is also the port it listens on, so use two lines: line 1 sends only, to CueSync's listener (loopback, 9001, Receive off, this is the line the plugin uses), and line 2 receives only, on 8000 (Send off). The plugin finds its line by itself: the one whose Port is CueSync's Listen Port, with Send and Send Command on. At the shipped Listen Port 0 it cannot match one, so Install bridge… warns you. Set the Listen Port first, then install. If you change the Listen Port — or Allow other devices on the network — later, install again: the bridge row says when the plugin was built for another port or another listener host. - Import the plugin into a Plugin pool slot (
Import Plugin <slot> "cuesync_bridge" /NC) and start it withCall Plugin <slot>(or tap it). Call or tap again to stop. Set Preferred IP first: it ships as10.0.0.0/8, and on any other network the console never opens its OSC port. - The bridge row in the Sync dialog turns green with the plugin version, the console and its software version. If something is wrong and CueSync can hear the plugin, the row names the setting. If Send Command is off CueSync cannot hear it at all, so the plugin says so on the desk: a line in the Command Line History reads "CueSync Bridge: the console refused SendOSC … Illegal property — OSC line 1 needs 'Send Command'…".
Keep these in mind:
- The row is live only while messages keep coming. It goes amber ("silent for N s") when the plugin stops or the desk goes away. If CueSync restarts while the plugin runs, click Re-read console (it asks the plugin to send everything again; it is not available while a show is live). If the row says the plugin is outdated, click Update bridge (it installs the current plugin with your token), tap the running plugin off on the console, run the import line again on the same slot, and tap it on. A read-back interrupted mid-way is marked out of date and can't be adopted or imported until a full read arrives.
- Big shows. The bridge reads the whole sequence pool, including shows CueSync did not write. The first read of a very large show can take a few minutes; after that only changes are sent. A cue the LD stores or deletes reaches CueSync promptly; on a very large show a rename can take longer.
- What is on each executor. With Assign to executor on, the Sync dialog says under the page and executor what is there now — already this sequence, or something else (in amber, with the next executor on that page that holds none), because the assignment replaces it. Without the plugin the dialog cannot say, and the toggle's own warning stands.
- Two desks. If two consoles run the exported plugin (onPC and a desk, a main and a backup), the bridge row says so. While two are sending, CueSync will not say that a sequence is missing from the desk, will not open write access over it without your acknowledgement, and will not delete its record of a push on that evidence, because one desk's list says nothing about another's.
- Which desk is the plugin on? The bridge row says "confirmed on <host>" once a plugin has proven it runs on the console CueSync writes to. Until then CueSync treats what it reports ("nothing is there", "that executor is free") as unknown and Write to sequence N anyway still asks. If a plugin never confirms, it is on another desk or that console is not reachable. Run the plugin on the console whose Command Line History shows CueSync's commands, and look at the sequence on that desk before pushing outside the scratch range.
- A push the bridge did not read back is said so. After a push CueSync waits for the plugin's next report of that sequence. If the plugin was running when you pushed and does not send a newer read-back in time, the Sync dialog says "push sent, but the bridge sent no newer read-back — not confirmed". That is not a finding about the desk: CueSync changes nothing in its record. Check the sequence on the desk.
- A sequence the plugin could not read is not reported. If a sequence's cue list cannot be read completely (it is being edited, or one cue fails), nothing is sent for it rather than a partial list, and CueSync treats the desk's list as incomplete.
- Settings are baked in when you install the plugin (Install on this computer, Update bridge or Install bridge…) — the scratch range, Bridge watches the whole sequence pool and Bridge scan interval. After changing any of them, install again and re-import the plugin.
- Macro slots. From plugin 1.8.0 the bridge also reports which slots of the console's Macro pool hold macros of your own, so the desk macro export for remote show control can name the slots it would replace. A plugin installed earlier reads outdated until you export it again.
- Text from the desk is cleaned. Rejection reasons, plugin errors, versions and Timecode object names that come back from the desk are shown without control, zero-width or direction-changing characters.
- Export the plugin from the machine you sync from. If the bridge row reports mismatches, re-export it from that machine.
8 · Feedback from the desk
The desk's OSC output is a second, optional line. A grandMA3 2.5 desk reports one message per sequence event — Go+, Go-, Goto, Off, a master level, and the cue it is on — plus the Grand Master; an older desk or console may report executor fader and key movements instead. CueSync reads both, for display only: it never fires, advances or releases anything because one arrived, because the desk repeats CueSync's own commands on this line. Set it up like this:
| On the desk's OSC out line | Setting |
|---|---|
| Enable Output | on, with the destination set to the CueSync machine and its OSC input port (§7, step 1) |
| Prefix | empty |
| Page / Fader / Key names | left at their defaults |
That feedback turns Look tiles LIVE (§3). It also shows in Diagnostics → GrandMA3 Feedback (turn the Diagnostics screen on in Settings → Advanced): how long ago the desk last reported and, for a 2.5 desk, each sequence's live cue; amber there means CueSync has never heard from the desk, not that it has been quiet. The feedback never gates or delays a cue. If CueSync fires an Executor Look and the desk does not answer, a sticky card says so, once per fire, and clears itself when feedback returns. The message names both halves: the desk's OSC output, and CueSync's own OSC Input Listener. A LIVE tile is suspended while the desk has not answered the latest fire.
9 · Show-day checklist
- Desk OSC page: Enable Input + Receive Command on, prefix empty, port 8000, Preferred IP = today's network (not the
10.0.0.0/8it ships with). - One CueSync output per desk, UDP. No second transport to the same desk.
- Fire one harmless action (a Goto to the current cue) and see it in the desk's Command Line History as
OK:. - Theatre: run Flight Check and read the per-desk lines.
- Theatre cues use absolute actions (Sequence cue with a cue number, or Goto cue), not Go+.
- The sequence on the desk matches CueSync: re-open the Sync dialog and look for "Already in sync — nothing to send" and no differs warning.
- You know what the LD runs the Grand Master at. Releasing panic brings it back to 100.
- Built-in pads and AutoPilot moves point at your executors, not Page 1.1.
- If timecode drives the desk, only one side fires each cue.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Cues show sent, desk does nothing, history empty | OSC input off, wrong interface, prefix set, wrong port | Check the §1 table. On onPC after a network change, reselect the interface. |
History shows Illegal object: or Cannot Create Object: | The executor, sequence or macro doesn't exist at that number | Correct the address in the action. The Sends: strip shows exactly what the desk will receive. |
| Every Go+ skips a cue | Two outputs (UDP + TCP, or two UDP) reach the same desk | Keep one. |
| After Back or Goto, the desk isn't back on a cue's look | The cue's action is a relative step (Go+, Macro…), which a jump leaves out. The run log names it | Use a Sequence cue with a cue number. |
A sequence level is ignored, Go+ Sequence N goes out instead | A saved action with both Go+ and a level. Its row reads Seq N Go+ | Retype the level. |
| Rig stays dark after releasing panic | The desk refused the Grand Master restore (CueSync names it), or the desk wasn't connected | Raise it on the desk, or fire Blackout off. |
| An Executor Look tile never turns LIVE | The desk's OSC output isn't reaching CueSync — or, on a 2.5 desk, the Session Sync bridge hasn't told CueSync which executor holds the sequence (Diagnostics lists the sequence as "no executor named") | §8, §7. Other grandMA3 Looks read SENT by design. |
| Sync refused: cues reordered / no decimal room | A cue moved past a neighbour, or two desk cues a thousandth apart with a new cue between them (the desk keeps three decimals) | Renumbering overwrites the looks. Do it only while the desk is still yours. |
| Sync refused: adopted baseline has a different number of cues | The track you sync didn't have as many desk cues as the desk when you adopted | Make the counts match and adopt again with that track selected (§5). |
| "Different console — sync blocked" | Last synced to another desk (different IP) | Adopt this desk's sequence, or Push everything if it is empty or yours. |
| Bridge row stays not detected | OSC input port 0, listener on loopback only, or signed messages required | §7 step 1, then restart the plugin. |
Bridge row stays not detected and the desk history shows red Illegal property: SendOSC 1 … | The desk's OSC line has Send Command off | Turn on Send Command on that line (§7 step 3), then restart the plugin. |
| Output shows Desk refusing UDP | The desk closed its OSC port: Preferred IP no longer matches, the network changed, or the input line was switched off. Session Sync will not write to it | Fix the desk's OSC page (§1) and fire one action; the badge clears once sends succeed. |
| A Timecode object imports, plays, and fires nothing | The file was written for the other release: its events lost their cue on import (§6) | Open the object; if the events show no cue, export again with the bridge connected. |
| A Timecode object's tracks show no sequence | The desk works in a second data pool and the file named another | Export again with the bridge plugin running, or set Data pool under Settings → Advanced → grandMA3 Timecode Files (0 = Auto). |
| Bridge row amber: silent, or "restart the plugin" | The plugin stopped, the desk went away, or CueSync restarted | Stop and start the plugin on the desk, or click Re-read console. |
| Bridge row: "TWO bridge plugins are sending" | Two consoles (or two copies) run the exported plugin | Expected with onPC and a desk; CueSync reads each separately and will not call a sequence missing from either until one stops. |
Desk sequence named …#2 | Two Parts with the same name | Rename one Part. |
Related
- GrandMA3 Session Sync — Every region and button of the Sync to GrandMA3 dialog
- Network Outputs — Adding, testing and monitoring outputs
- Looks — Building Looks, grandMA3 targets included
- Cues — Adding actions to cues
- Timecode — The show clock, output routing and venue origin
- Desk Verification — A short checklist for verifying your own desk setup
- GrandMA2 — The grandMA2 equivalent, over Telnet
Looking for a quick fix?
The Help Center has short task-focused articles and a support team that responds within 24 hours.