How To

Redundancy & Sessions

CueStudio 2 can link two or more Macs over the network so a backup machine mirrors the primary; protection against hardware failure mid-show.

#Concepts

  • PRIMARY: the machine in control. Audio and DMX output active.
  • BACKUP: a mirror. Receives all cue edits and transport commands. By default, stays silent so it doesn't double-feed the rig, if a backup plays nothing, this is usually why. Turn on "Backup outputs audio" in the Session window for a redundant rig; the session indicator in the title bar says when a backup is muted.
  • Session: the connection between one PRIMARY and its BACKUPs.

#Setting up a session

  1. Open the Session window on both Macs (Tools ▸ Session…, ⇧⌘J).
  2. On the PRIMARY, click Host Session. Note the session name.
  3. On the BACKUP, find the PRIMARY in the discovered sessions list and click Join.
  4. The show, its media, and all routing settings transfer to the BACKUP automatically.

#More than two machines

A session is one PRIMARY and as many BACKUPs as you want to join: there is no limit of two. Every backup receives the same cue edits, transport commands and media, and each one is listed in the Session window on the PRIMARY with its name, round-trip time, CPU and free memory.

Give each machine a distinct name in the Peer name field before you join, because that name is what identifies it everywhere else: the discovered-sessions list, the connected-peer table, and the session indicator in the title bar.

What makes each machine different is not a special mode, it is what you patch on it and which outputs you allow it to drive. A backup mirrors the whole show; you shape what actually leaves the machine locally. Audio and DMX are muted on a backup by default so two machines cannot double-feed one rig: video, NDI, Syphon, OSC and MIDI always flow. That gives you, for example:

  • A safety backup: patch it to the same rig, leave the output toggles off, and turn "Backup outputs audio" on only if it is feeding its own separate speaker system.
  • A dedicated video machine: patch its video outputs to the projectors or screens it drives and leave the audio and DMX toggles off. It plays every video, image and text cue in step with the PRIMARY and emits no sound.
  • A stage-manager repeat: patch no outputs at all. It shows the running cue list, clocks and status for someone who needs to follow the show without driving anything.
  • A presenter display: join it as a backup, then press ⌃⌘P for Presenter View. It follows the show and shows notes, clocks and previews on the speaker's screen.

Audio devices, video output patching and the network port are all per-machine settings, so each of these Macs keeps its own without disturbing the others.

#Choosing which network port the session uses

A show rig usually has more than one way onto a network: built-in Wi-Fi plus a wired adapter for the show LAN, and often a second adapter for lighting. Left alone, macOS picks whichever route its routing table prefers, which with Wi-Fi connected is frequently the venue's guest network rather than the wired LAN sitting right there.

The Network menu at the top of the Session window pins session traffic to one port. Ports with a live connection are listed first with their current IP address, so you can tell them apart; ports with nothing plugged in are listed below, because a rig is often configured before the LAN is patched. Automatic hands the choice back to macOS.

Set it on every machine in the session. It applies to discovery, to hosting, and to every connection made afterwards, so change it before you host or join, changing it while hosting re-publishes on the new port automatically, but connections already established stay where they are until they are re-made.

If the chosen port later has no link, the Session window says so and traffic falls back to automatic routing rather than failing outright: an unplugged cable should not also cost you the ability to join over Wi-Fi in a hurry.

The choice belongs to the MACHINE, not the show: it names this Mac's hardware, so it is remembered between launches and never travels in the show file.

#Session status in the title bar

While a session is active, a session indicator appears in the title bar on both machines, between the cue status and the Edit/SHOW button. It shows which role this Mac is playing (PRIMARY, BACKUP, CONNECTING, PRIMARY LOST) and who else is connected: on a PRIMARY, how many backups have joined; on a BACKUP, which machine it is following. While media is copying it also carries a progress bar and the estimated time remaining, so you can tell at a glance whether a rig is ready. Hover it for the full text, including this Mac's session name and any warning; click it to open the Session window. It is hidden entirely when the Mac is not in a session.

#Audio outputs are patched per machine

Which physical device an output uses is a property of the MACHINE, not the show: a backup with a different interface must not inherit the primary's device choice. On joining, each output resolves in this order: this Mac's own output with the same identity; then a device you previously chose for it; then this Mac's output with the same NAME (so a machine already patched as "Output 1", "Output 2"… keeps that patch when it adopts a new show); and finally the device the PRIMARY chose, but only if this Mac actually has it: matched by hardware id, then by device name. A device the show never named is never substituted.

Anything left over arrives unassigned: open Audio Outputs (⇧⌘P) and pick a device. That choice is remembered, so you only patch a machine once. Cues routed to an output with no device cannot play: on a backup they are skipped so the mirror stays in step with the primary, and each skip is recorded in Status ▸ Logs. If any output the show uses is unpatched, the session indicator in the title bar says so and names it: this is the usual reason a backup plays the first few cues and then appears to stop.

#What stays in sync

  • All cue edits (names, levels, routing, new/deleted cues).
  • Transport commands: GO, Stop, Pause, Resume, GOTO, LOAD.
  • Show saves (⌘S on PRIMARY saves the show on BACKUP too).
  • The full media library (any audio/video/image file the PRIMARY uses).

#Media transfer

Media files transfer over a parallel bulk channel so heartbeats and commands are never interrupted. Overall progress appears in the title bar's session indicator, and a progress bar per file appears in the Session window. On rejoining after a restart, only files not already on the BACKUP are transferred.

#Playback sync

CueStudio 2 broadcasts clock echoes from PRIMARY to BACKUP at 4 Hz. Each BACKUP runs a gentle PI rate-correction loop to slew its playback speed toward PRIMARY's position, eliminating clock crystal drift over long cues. The BACKUP's clock display reflects PRIMARY's position in real time.

#Redundant rig vs. shared rig

  • Shared rig (default): BACKUP's audio and DMX outputs are silenced. Only PRIMARY feeds the speakers and lighting.
  • Redundant rig: enable "Backup outputs audio" and/or "Backup outputs DMX" in the Session window. Both machines feed their own sets of outputs, if one fails, the other continues uninterrupted.

#Tight-sync GO

When enabled, PRIMARY delays its own GO by a configurable window (default 100 ms) and sends the scheduled fire time to all BACKUPs so every machine fires at the same wall-clock instant. The audio engines then schedule the actual SAMPLES at that deadline (not merely the function call), so the two machines' starts are locked to within the clock-offset estimate (a few milliseconds on a wired network) rather than each machine's scheduling jitter. Required for redundant rigs where audio on both machines must align: with it off, the backup starts each cue whenever the GO frame arrives, which is an audible offset. The trade-off is that GO feels slightly delayed locally (the window, 100 ms by default). Wi-Fi adds jitter to the clock estimate: use wired ethernet between the machines for the tightest lock.

#Taking over

A BACKUP declares the PRIMARY lost after three seconds without a heartbeat, that is twelve missed beats, so it means real silence and not a momentary network hiccup. The BACKUP then shows "PRIMARY LOST" and an audible alert sounds. The alert repeats at most once a minute, so a link that keeps dropping and recovering raises the alarm without becoming noise you learn to ignore. (Turn it off with "Alert on primary loss" in the Session window.) Click Take Over to promote the BACKUP to PRIMARY: its outputs un-mute and it starts hosting a new session. Optional auto-promotion promotes the highest-priority BACKUP automatically once the PRIMARY is declared lost.

#Priority

Each machine has a priority (0–100). Higher priority = promoted first during auto-election. Set it in the Session window's identity block.

#Security (PSK)

Set a passphrase in the Session window. Only machines that share the same passphrase can join the session. Click Generate to create a random six-word phrase.

#Diagnostics

The Session window's Connection Log records every handshake, mutation, and error. Use the filter field to search, and Copy to extract lines for a bug report. Each connected peer shows its round-trip latency (ms), CPU load, and free RAM.