Helm Sessions
What this does: one Cues hosts the show. Every other device on the network follows it to the frame and does what its role allows.
Who is in a session
Section titled “Who is in a session”| Device | Gets from the host | Sends to the host |
|---|---|---|
| Host (one Cues) | — | Runs audio, LTC, MTC, Art-Net, MIDI Clock, the desk bridge and the cloud push |
| Second Cues | The show, its media, the playhead | What its role allows: transport, edits, Panic |
| Helm Monitor (iPad, iPhone) | The show, the playhead | Nothing |
| Helm DJ | The session clock. No show, no media. | Its master deck, at operator or better |
| Helm Clock | The playhead and the show’s frame rate | Its lock state |
| grandMA3 desk | Tracks and cues, through the plugin | Desk commands |
- The host is the show. A peer plays no audio. Its controls play on the host.
- One host per session. A standby can take over. Never on its own.
Before you start
Section titled “Before you start”-
Put every device on the same network, wired where you can. The session list does not reach across a router.
-
Put every Cues on the same build. Edits from a peer need it.
-
On the host, open the show you will run.
The Sessions page
Section titled “The Sessions page”View → Sessions… (⇧⌘D) opens Settings → Helm Sessions. Five sections, top to bottom.
1. Session
Section titled “1. Session”One card. The first line says where this Cues stands.
| First line | Means |
|---|---|
Not in a session | Button: Host this show |
Hosting <name> · 2 joined | Button: Stop session. Every peer drops at once. |
Asking <name> to allow this device | Waiting for the host’s Allow |
Following <name> as operator | Joined. Button: Leave |
Link lost to <name> · reconnecting, the playhead is frozen | Nothing heard from the host |
Refused by <name>: … | The host said no, and why |
- Hover the first line for this device’s fingerprint.
- This device: the label other hosts list this Cues by (
FOH Mac), with the Mac beside it. Blank = the Mac alone. Applies on the next join. - Not in a session: Session name and Require a passcode (ticked by default).
- Hosting: the Passcode row, Show join code… and Join policy.
- Following: the sync line (
Show v12 · media 37/40 checked · clock ±1 ms), the Host transport row for an operator or better, and TAKE on a standby.
2. Sessions on the network
Section titled “2. Sessions on the network”Every host this Cues can see, with its name and IP. An empty list reads None found.
| Button | Shows | Does |
|---|---|---|
| Join | The host’s show is in a Helm Cloud project and you are signed in | Joins on your cloud sign-in. No Allow. |
| Ask to join | Always | Asks the host without a code. A host with its passcode on refuses it. |
| Passcode… | Always | Opens a 6-digit field and Join with passcode. Needed when the host has a passcode on. |
| Rejoin | After a TAKE: Taken over by its standby | Rejoins the new host. No asking. |
Desk bridge only (older Cues): a host that cannot be joined.- Join as standby and Join by address… sit under the list.
- In a session the section folds to
Sessions on the network · n. Show opens it. Joining waits until you stop or leave.
3. Devices
Section titled “3. Devices”One table: every device in the session and every device this Cues knows. Desks too. Groups… sits on the header.
| Column | Shows |
|---|---|
| Name | The name you gave it, else the label set on the device, else the device. The real device sits under it: iPad Pro 13-inch (M5) · Helm Monitor 0.1.0. |
| Type | Cues, Monitor, DJ, Clock or Desk |
| Role | Hosting: the role menu, with Standby beside it. A desk: Drives. Not in the session: the role it rejoins at. |
| Allowed stacks | What a monitor sees, and its group. Edit opens the editor. A desk reads Whole show. |
| Status | See below |
| ⋯ | The actions menu |
| Status | Means |
|---|---|
| Joined | In the session now |
| Approved | Not in now. Rejoins without asking or an Allow. |
| Offline | Seen before. Asks to join next time. |
| Blocked | A desk you blocked |
Status names the problem. Hover the cell for the full line.
| Status line | Means |
|---|---|
Joined · quiet 4 s | Nothing heard from it for 4 s |
Joined · media 37/40 | Files still missing on that peer |
Joined · deck ignored | A Helm DJ at monitor. Its deck is dropped. |
Joined · driver gone | A desk’s assigned Cues left. Its commands are dropped. |
Joined · auto-sync off | A desk with auto-sync paused |
Joined · LTC 25 fps · locked +0.2 ms | A Helm Clock’s own line |
Joined · Deck 2 · master · playing · 124.0 BPM · … | A Helm DJ’s own line |
The ⋯ menu:
| Item | Does |
|---|---|
| Rename | The name every peer sees. Empty = the device’s own name. |
| Allowed stacks and group… | Opens the stacks editor |
| Pause auto-sync / Resume auto-sync | A joined desk. Paused, the desk gets no live cue times; they follow when it resumes. Import on the desk still works. |
| Remove approval | It asks to join next time |
| Unblock | A blocked desk may join again |
| Remove from session | Drops it now and removes its approval. It can ask again. |
| Block | A joined desk. Nothing it sends is acted on until you unblock it. |
| Forget | Drops its name, group, allowances and approval. A joined device stays until you remove it. |
- Not hosting: edits save now and apply when you next host.
4. Requests
Section titled “4. Requests”Shown only while something waits: Requests · n. Columns: Device (its name, the real device under it), Type, Asked at.
| Button | Does |
|---|---|
| Allow | Lets it in as monitor. It is approved for next time. |
| Deny | A peer. Tells it no. It can ask again later. |
| Block | A desk. Nothing it sends is acted on until you unblock it. |
- Nothing a waiting device sends is acted on.
- Peers also toast on every page. See Let a device in.
5. Desk
Section titled “5. Desk”The grandMA3 bridge. It starts and stops with the hosted session.
- First line:
Bridge up · 1 desk joined · port 8001 → 8000. With no session:Bridge off · it starts when you host a session. File bridge only · MA3 holds UDP 8001 on this Mac: grandMA3 onPC on this Mac holds the desk port. A desk on another machine cannot reach Cues.- Change ports…: Desk input port, default 8000. “Must match the desk’s Helm IN row.”
- Desks need approval before they pull. On: a new desk waits in Requests. Off (the default): a desk joins as soon as it connects.
- Follow the desk’s track load. On: a track load from a desk macro loads that track in Live, never over a playing track. Off: it is ignored.
- Push now, Export show.lua, Choose folder…, Check MA3 connection…. See grandMA3 setup.
Host a session
Section titled “Host a session”-
View → Sessions… (⇧⌘D).
-
Check Session name. It defaults to the show name.
-
Leave Require a passcode ticked. Every new device then enters the code before it can ask or join.
-
Click Host this show.
-
The first time, macOS asks to allow incoming connections for Helm Cues. Allow it. Refuse and nobody can join.
The first line reads Hosting <name> · 0 joined. Every new session starts on Ask.
Pick a join policy
Section titled “Pick a join policy”Join policy sits in the Session card while hosting.
| Policy | Passcode off | Passcode on | Approved before | Cloud sign-in |
|---|---|---|---|---|
| Ask (default) | The device asks. It waits for Allow. | The device enters the code, then waits for Allow. | Straight in, at its last role | In, at its project role |
| Open | In at once, as monitor | The device enters the code, then is in at once, as monitor | Straight in | In, at its project role |
| Members only | Refused | Refused | Straight in | In, at its project role |
- Ask: “Devices ask to join. You allow or deny each one. With a passcode on, they enter it first.”
- Open: “Any device on this network joins at once, as monitor. With a passcode on, it enters it first.” With the passcode off, anyone on the network sees the show.
- Members only: “Only signed-in project members get in, with a Helm Cloud sign-in. Devices on the network cannot ask.” It needs the internet. Offline, no new device can join.
- The policy applies to the next join. Nobody already in or waiting moves.
- Approved = let in once, by Allow or an Open join. It rejoins under every policy, with no code and no Allow.
Set the passcode
Section titled “Set the passcode”The Passcode row sits in the Session card under Ask and Open.
| State | Row | Help line |
|---|---|---|
| On, under Ask | The 6-digit code, New code, Turn off | ”On: devices must enter it before they can ask.” |
| On, under Open | The 6-digit code, New code, Turn off | ”On: devices must enter it to join.” |
| Off | Off, Turn on | ”Off: devices ask without a code. A device you approved rejoins either way.” |
| Members only | ”Not used. Members sign in with Helm Cloud.” | — |
- On means required. A device that asks without the code is refused: “this session needs its passcode”.
- Approved devices rejoin without the code.
- Back to the code: Remove approval, Forget and Remove from session send a device back to the code. With the code off, back to asking.
- New code changes it at once. Devices already in stay in.
Show the join code
Section titled “Show the join code”Show join code… opens Join this session.
| Item | Shows |
|---|---|
| QR | For Helm Monitor. Not under Members only. |
| Address | 192.168.1.20:5355 |
| Fingerprint | 26 characters. Typed with the address to join by hand. |
| Passcode | When it is on: “Required. The QR carries it.” Not under Members only. |
- The QR carries the passcode whenever it is on. A device that scans it joins with the code. Under Ask: “The device enters the passcode, then asks to join; you allow or deny it here.”
- Interface: shown when this Mac is on more than one network and none is pinned. “Pick the one the iPad is on. Settings → Network pins it for good.”
- No network:
No network interface is up. Nothing can reach this session.
Let a device in
Section titled “Let a device in”-
A device asks, with the code if the passcode is on. A toast shows on every page:
FOH iPad wants to join, the real device under it, Allow and Deny. Several at once read… · 3 waiting. -
Press Allow. It joins as monitor and is approved for next time.
-
Raise its role in Devices → Role if it needs more.
- Deny tells the device no. It may ask again after a short wait.
- × on the toast hides it. The device still waits in Requests.
- Desks do not toast. They wait in Requests with Allow and Block.
Join from a second Cues
Section titled “Join from a second Cues”From the network list
Section titled “From the network list”-
On the second Cues, View → Sessions….
-
The host appears under Sessions on the network within 2 s.
-
Tick Join as standby if this Mac should be able to take over. See Standby and TAKE.
-
Passcode on: click Passcode…, type the 6 digits, click Join with passcode. “You start as monitor. Under Ask the host still presses Allow.”
-
Passcode off: click Ask to join. Under Ask the host presses Allow. Under Open you are in at once.
-
Signed in to the host show’s cloud project? Click Join instead. No code, no Allow. Your project role comes with you.
The first line reads Asking <name> to allow this device, then Following <name> as monitor. A monitor adds Monitor page only. No audio plays here.
By address
Section titled “By address”Use it when the host is not in the list.
-
Open Join by address….
-
Type the Address (
192.168.1.20:5355) and the host Fingerprint (26 characters). Both are under Show join code… on the host. -
Type the code in Passcode (if on). Blank = ask to join. A host with its passcode on refuses that.
-
Click Ask to join, or Join with a passcode typed.
Come back
Section titled “Come back”- Approved: click Ask to join. It goes straight in at its last role. No code.
- Removed or forgotten: it needs the code again. With the code off, it asks again.
Join from an iPad or iPhone
Section titled “Join from an iPad or iPhone”-
On the host, click Show join code….
-
On the device, open Helm Monitor and scan the QR. The QR carries the code. Or tap the session under Sessions on this network and type the code.
-
Under Ask, press Allow on the host.
See Helm Monitor.
The host sets each role in Devices → Role. It takes effect at once.
| Can it… | Monitor | Operator | Editor | Owner |
|---|---|---|---|---|
| Watch the Monitor page | Yes, only that page | Yes | Yes | Yes |
| See every stack | Only its allowed stacks | Yes | Yes | Yes |
| GO, Pause, STOP, seek, nudge | — | Yes | Yes | Yes |
| Next and previous track, cue a track | — | Yes | Yes | Yes |
| Panic | — | Yes | Yes | Yes |
| Drive a desk assigned to it | — | Yes | Yes | Yes |
| Be a standby | — | Yes | Yes | Yes |
| Count as a Helm DJ deck | — | Yes | Yes | Yes |
| Edit the show | — | — | Yes | Yes |
| Arm Live and Release Live | — | — | — | Yes |
| How it joined | Starts as |
|---|---|
| Allow, an Open join or a passcode | Monitor |
| Cloud sign-in | Its project role, Editor at most. A project viewer is a monitor. |
| Rejoin as approved | Its last role for this show |
- The host checks every action. It refuses what the role does not allow, whatever the peer’s buttons show.
- Owner is the host’s to give. Only Devices → Role sets it.
Limit what a monitor sees
Section titled “Limit what a monitor sees”Allowed stacks apply to the monitor role only. Every other role gets the whole show.
-
In Devices, click the monitor’s Allowed stacks cell (or ⋯ → Allowed stacks and group…).
-
Pick a Group, or leave No group.
-
Untick All stacks. Tick the stacks it may see.
-
Untick Sequence monitor to hide the Sequence monitor pane on that Helm Monitor.
-
Click Done.
- A joined device gets the change within a second.
- Stacks are per show. Open the show to set them.
- Hidden stacks never reach the device.
- The cell reads
All stacks,No stacks,Main, FXor4 stacks, then· <group>. - Default: every stack, sequence monitor on.
Groups
Section titled “Groups”Groups… opens the group list: Group, Allowed stacks, Sequence monitor, Members, Remove.
-
Type a name in New group name.
-
Click Add group.
-
Click its Allowed stacks cell and pick the stacks.
- A device’s own stacks win over its group’s.
- Remove puts its members back to no group.
What a peer gets
Section titled “What a peer gets”| What | How |
|---|---|
| The show | The whole show on joining, then every change the host saves |
| The playhead | Follows the host to the frame. Play, pause, track and arm land at once. |
| Media | From the host, checked. The cloud is the fallback. |
| A cached copy | Kept across restarts, so a rejoin is quick |
Media over the LAN
Section titled “Media over the LAN”- The peer copies each file it is missing from the host and keeps it only if it checks out.
- A file the host has not got, or one that fails the check, comes from the cloud.
- The count is checked files only:
media 37/40 checkedon the peer. On the host, Devices readsJoined · media 37/40while files are missing. - Not signed in on the peer:
3 file(s) are not on the host and this Cues is not signed in to the project. Import them by hand.
What persists
Section titled “What persists”- Roles. The host remembers each device’s role per show. Host the show again and an approved device rejoins with its role. No Allow.
Drive the host from a peer
Section titled “Drive the host from a peer”Operator or better.
-
On the peer, open Live.
-
Use it as on the host: Space is GO, the transport buttons, ← → to seek, the scrubber and cue rows, ⇧← ⇧→ for tracks, a setlist click to cue a track. Each goes to the host.
-
Or use Host transport in the Session card: GO, Pause, STOP, and Arm Live / Release Live for an owner. “Plays on the host. Nothing plays here.”
The host runs each one through its own buttons and names the peer: GO from FOH MacBook., STOP from FOH MacBook., Armed by FOH MacBook.
| The peer sees | Means |
|---|---|
Monitor role: the host runs the transport. | A monitor. Nothing sent. |
Arming Live is the owner’s. Ask the host. | Arm needs owner |
Not sent: no link to the host. | The link is down |
The host refused: not permitted for your role. | The role does not allow it |
- GO while a track plays does nothing, as on the host. GO with nothing cued: the host toasts
GO from …: nothing is cued. - Cueing a track while one plays queues it to play next, as on the host. The host toasts
… queued <track> to play next. - A peer’s MTC input never moves it. Chase is off while following.
Edit from a peer
Section titled “Edit from a peer”Editor or owner, on the same Cues build as the host.
-
Edit in Build as usual. Each save goes to the host. The Session card shows
An edit is on its way to the host. -
The host applies it, saves it and reloads its own Live page. It toasts
Show edited from …. -
Every peer gets the new version, the editor included.
The host wins a clash. The editor’s change is dropped, its copy is replaced with the host’s, and it toasts Edit not applied: ….
| Reason | Means |
|---|---|
edits need the host's Cues build: the host runs …, you run … | Put both on the same build |
the host's show moved on to v…; showing the host's version | Someone saved first |
the host is saving a change to the same part of the show; showing the host's version | Two edits to the same part at once |
… is locked on the host: its cues cannot change until it is unlocked; showing the host's version | The stack is locked on the host |
this host does not take edits (an older Cues); … | The host’s build takes no edits |
not permitted for your role | Not editor or owner |
- Never in an edit: a track’s audio file and duration (each Mac keeps its own), and the show’s cloud link.
- Two editors on the same track in one save: one is refused. By design.
Panic from a peer
Section titled “Panic from a peer”Operator or better.
-
Fire Panic on the peer as usual.
-
The peer silences its own timecode and lanes at once.
-
It sends Panic to the host. The host runs the full Panic and names the peer.
- Sent:
Panic sent to the host. Local timecode silent. … ms. - A monitor:
Panic not sent: not allowed for a monitor. Local timecode silent. - No link:
Panic not sent: not connected to a host. Local timecode silent.
See Panic.
Standby and TAKE
Section titled “Standby and TAKE”A standby follows like any peer. It keeps the show, its media and the host’s desk settings. It can take the session over when the host goes down. TAKE is never automatic.
Make a standby
Section titled “Make a standby”-
On the second Cues, tick Join as standby, then join.
-
On the host, set its role to Operator or better. A monitor is never a standby. Standby shows beside its role in Devices.
-
The standby’s line reads
Ready. Holds the show and the desk bridge settings; n trusted device(s).
From then on the standby holds the session name, passcode, every approved device and its role, and the desk bridge settings.
The control sits in the Session card and bottom-right on the Live page.
-
The host stops answering. Under 5 s the line reads
LINK LOST n s. Reconnecting. -
From 5 s it turns red: Host lost n s — TAKE?
-
Press TAKE.
-
Press CONFIRM TAKE within 4 s. “Press again within 4 s. Two hosts if the old one still runs.”
The standby then:
-
Stops following and saves the show on this Mac, pointed at this Mac’s media.
-
Hosts it with the same session name and passcode. The join policy starts on Ask.
-
Approves the old host’s devices, at their roles.
-
Starts the desk bridge with the old host’s ports, approval switch and desks.
-
Loads the last track and parks at the last position. Parked, not playing.
The toast reads TAKE: hosting "…". Parked, not playing. n trusted device(s) can rejoin on their pins. A desk bridge problem gets its own: Desk bridge did not start: ….
After a TAKE
Section titled “After a TAKE”- Other Cues peers: Sessions on the network shows
Taken over by its standbywith Rejoin. A peer still on LINK LOST sees Rejoin there in its Session card. One click, no Allow, same role. Not automatic. - Helm Monitor: does not follow on its own. Join the new host from Sessions on this network. Passcode off: Join takes it straight in, approved on the old host. Passcode on: type the code; under Ask the new host presses Allow.
- Desks: the new host does not call them. Each desk pointed at the new host rejoins at its next press or Import. A desk still pointed at the old host’s IP needs the session picked again on the desk.
- Cloud: the new host pushes. If the old host pushed after the standby’s last copy, the first push is refused: another device is writing.
- The old host: if it still runs, there are two hosts. Stop it.
MA3 desks in the session
Section titled “MA3 desks in the session”Every grandMA3 connected to the hosted session is a device: type Desk in Devices, a row in Requests while it waits.
-
On the desk, connect to the session. See grandMA3 setup.
-
With Desks need approval before they pull on, it waits in Requests with Allow and Block.
-
Allow puts it in Devices, with Drives in its Role cell.
- Block (Requests, or Devices → ⋯): “Nothing this desk sends is acted on until you unblock it.” Its status reads Blocked until Unblock.
- Remembered: Allow per show, Block for every show. A restarted session keeps both.
- Rename a desk and every peer sees that name.
- Auto-sync is per desk, in its ⋯ menu.
- A desk stays Joined from its hello until it disconnects, three sends to it fail in a row, or Cues restarts. Nothing polls it. Its status tooltip says when Cues last heard from it:
last heard 14:03:22. See Link state.
Assign a desk
Section titled “Assign a desk”Drives, in the desk’s Role cell, says who runs its commands. Default: This host.
| Drives | The desk’s commands |
|---|---|
| This host | Run on the host’s Live page |
| A Cues peer | Go to that peer, which sends them back to the host to run. Only while that peer is connected. |
| A Helm Clock | Dropped: a clock takes no commands |
Commands only. Drives moves the desk’s transport, track, select and show commands (load, start, pause, resume, stop). Never timecode. A desk’s timecode is whatever is cabled to its input. A Cues peer sends no timecode. To give a desk its own timecode, assign it to a Helm Clock and cable the desk’s LTC input from that clock.
To assign a desk to a second Cues:
-
Join the second Cues to the session. Set its role to Operator or better.
-
On the host, in the desk’s row, set Drives to that Cues.
-
On the second Cues, open Live and press Desk so it reads Desk ON.
-
A desk command now toasts on the second Cues (
desk 2: start → host.) and runs on the host. The desk confirms it as before.
With Desk OFF on that Cues the command stops there: … not sent. Desk control is off on this Cues.
When the assigned peer leaves
Section titled “When the assigned peer leaves”- Its desk’s commands are dropped, never run on the host. A show command is answered on the desk:
refused start — the Cues this desk is assigned to is not in the session. - The desk is not told. Its HELM CONNECT stays as it was; the refusal above is what it sees.
- Demoted to monitor counts the same:
refused start — <name> is monitor; a desk needs operator or above. - Drives shows Not in the session and the status reads
Joined · driver gone, until the peer is back or you pick another driver.
To run the desk from the host again, set Drives to This host.
Helm DJ and Helm Clock
Section titled “Helm DJ and Helm Clock”Both join as devices. They take no show and no media.
- They join with the passcode. Keep the passcode on (Turn on in the Session card) while one joins.
- Under Ask they then wait in Requests for Allow. Under Open they are in at once.
- Under Members only a new one cannot join. One approved before still rejoins.
- Helm DJ needs Operator. At monitor its deck is ignored:
Joined · deck ignored.
See Helm Session in Helm DJ and Helm Clock.
Security
Section titled “Security”- Every link is encrypted. The host knows each device by its own identity, not by its name.
- Under Ask nothing gets in on its own. Every new device waits for Allow.
- A passcode that is on is required. Without it a device cannot even ask.
- Passcode guesses are limited. Each wrong code makes that device wait longer, up to 30 s.
- Lockouts. 10 wrong codes, or 10 denies, lock that device out until the passcode changes. 20 wrong codes across all devices change the code on their own.
- Waiting devices are capped. They never take a member’s place.
- 16 members per host. The 17th is told the session is full.
- Remove sticks. Remove from session drops the device and its approval. It needs the code again, or must ask. Under Open with the code off it would get straight back in: turn the passcode on, or use Ask.
- A restricted monitor gets nothing hidden.
- A cloud sign-in works only for the device that asked for it. It cannot be copied to another one.
- A blocked desk is ignored until you unblock it.
Details: Technical reference
Limits
Section titled “Limits”- 16 members per host.
- Clock sync is sub-millisecond on a wired network. Wi-Fi numbers are not published.
- Field testing: TAKE, sharing media between Macs, desk routing, Helm DJ and Helm Clock are tested on a single Mac so far. Rehearse on your own rig before a show.