Tools
OSC
Control CuePoints from a console or Companion using Open Sound Control
OSC (Open Sound Control) lets machines on a network send each other short messages. With it, your lighting desk, media server, tablet or Stream Deck can control CuePoints, and CuePoints can control them.
Two things it gets you:
Your console can control CuePoints. Press GO on the lighting desk and a cue appears here, at exactly the right moment. This is how most people record a cue list during a tech.
CuePoints can control the console. Fire a cue here and the desk jumps to it.
It also runs the transport from anywhere, so a Stream Deck or a tablet can play, pause, skip and record, and it reports the state of the show continuously, so a status display always knows where you are.
Getting Connected
Three things have to line up, at both ends:
The same network. Both machines need addresses in the same range,
192.168.0.xtalking to192.168.0.x. If your Mac is on Wi-Fi and the desk is on a wired show network, pick the wired interface on the pane so the messages leave by the right door.The same port.
8000is the usual one.The same message wording. Choose a preset for your console and this is filled in for you.
The message log at the foot of the pane is the tool that solves nearly everything. Clear it, press GO once on the console, and look at exactly what arrived. That is the message the console sends; copy it into OSC Go trigger and you're done.
Command templates support placeholders, so a single template carries the cue number, name or timecode. An individual CuePoint can also carry its own command, overriding the default for its type, for the one cue in the show that has to do something unusual. The full list of messages and placeholders is under Message Reference.
Stream Deck, Using Companion
Bitfocus Companion is free software that turns a Stream Deck into an OSC controller. It has a built-in emulator, so you can try all this with no hardware at all.
Download it from bitfocus.io/companion.
Set Companion up:
Choose the network interface that matches the one CuePoints is using.
Press Launch GUI.
Add CuePoints as a connection:
On the Connections tab, add a Generic OSC device.
Set Target IP to your Mac's address; the one shown for the network interface CuePoints is using.
Set Target Port to the port on the OSC pane (
8000unless you changed it).Save.
Add the ready-made buttons:
Download the CuePoints Companion config from cuepoints.com/download.
Go to the Import / Export tab.
Import the config file.
You now have a page of working buttons: transport, cue navigation, and cue creation.
grandMA3
grandMA3 can drive CuePoints directly, using a set of ready-made macros.
Set up OSC on the desk:
Put the desk's network adapter in the same range as your Mac.
Go to
Menu > In & Out > OSC.Enable Output, with an active session.
Fill in OSC line 1:
Name:
CuePoints(or anything)Destination IP: your Mac's address
Mode:
UDPPort:
8000Send: Yes
Send Command: Yes
Install the macros:
Download them from cuepoints.com/download.
Put them in
grandMA3/gma3_library/datapools/macros.On the desk, go to
Menu > Import/Export.Import CuePointsOSCMacros.
Press a macro to fire it, or put it on an encoder for skipping. The macros are ordinary MA3 macros, so you can edit them if your show needs different amounts.
Keeping A Connection Honest
CuePoints watches incoming OSC. If a connection stops delivering, it stops reporting itself as connected, so what the pane shows is what is actually happening.
Incoming messages are also rate-limited, so a device sending far more than it should can't overwhelm the app.
Settings
CuePoints > Settings… > OSC
Connections
You can have up to five connections at once: one to the lighting desk, one to the video server, one to a tablet, and so on. They're listed at the top.
Add a connection makes a new one.
Remove the selected connection deletes the one you've got selected. You'll always keep at least one.
Click a connection to select it. Everything below the list belongs to that connection.
Each shows whether it's Running or Not Connected, so you can see at a glance which links are live.
Setting Up One Connection
PRESET: start here. A preset fills in the right message wording for a known console. Pick your console if it's listed; pick Custom to do it yourself.
NAME: what you call this connection. Name it after the machine it talks to,
Lighting Deskrather thanConnection 2.HOST ADDRESS: the network address of the other machine, like
192.168.1.50. Its own settings screen will tell you.PORT: the numbered port OSC arrives on. Both ends must use the same number; the console's manual says which.
PROTOCOL: UDP is fast, simple, and what almost everything uses. Start there. TCP is a checked connection that some consoles need; use it when the manual says so.
FRAMING (TCP): only matters on TCP. It's how the two ends agree where one message stops and the next starts: None, Length Prefix or SLIP. The manual will say; if it doesn't, try SLIP first.
NETWORK INTERFACE: which network card to use. Leave it on the default unless your computer is on two networks at once. Then pick the wired one by name. The list refreshes every time you open it, so a dock or adapter you've plugged in appears at once.
Connect starts the connection.
Message Routing
Four switches that decide what this connection is allowed to do:
Receive commands: the console can control CuePoints.
Send commands: CuePoints can control the console. Turn this on so that CuePoints sends OSC when a cue point fires.
Send status messages: CuePoints reports its transport, playhead and record state, about ten times a second. Turn it on for a tablet or a status display. Turn it off otherwise; it's a steady stream of network traffic.
This connection can trigger CuePoints: lets this connection create cues in your project. Leave it off for anything that should only watch.
Turn on only what you need. If a console should watch but never change anything, Receive commands off is the switch that guarantees it.
Cue Trigger Actions
This decides what happens when the console presses GO, in each transport state. It matters because you usually want two different things: while recording a show you want a cue created, and while playing back you usually don't.
When not recording, four choices:
Console Triggers CuePoints: the console's GO makes CuePoints jump to the matching cue. Use this when the desk is in charge.
Do Nothing: ignore it. The setting for building a show without stray cues appearing.
Create New CuePoint: drop a new cue at the playhead every time the console fires.
Run Cues On Console: the other way round; CuePoints is in charge and drives the desk.
When recording, two choices:
Do Nothing
Create New CuePoint: the one you want while capturing a show. Every GO on the desk lands as a cue, at the right moment.
Going To A Cue
OSC Go trigger: the exact message that means "go" from your console. A preset fills it in; otherwise read it off the message log.
CuePoint type for Goto: which kind of cue the console's GO should look for. All Types matches anything, or pick one of your own types so a lighting desk only ever jumps to Lighting cues.
Message Log
The log shows OSC going past, live.
The filter shows All, In only or Out only. Set it to In only when you're working out what a console actually sends.
Clear empties it so you can watch one thing happen on its own.
When It Isn't Working
Nothing in the log at all. The message isn't reaching CuePoints. Check the port matches at both ends, that both machines are on the same network, and that NETWORK INTERFACE isn't pointing at Wi-Fi when the desk is on the wired network.
Messages appear but nothing happens. They're arriving but don't match what CuePoints is listening for. Check the preset, and that Receive commands is on.
Cues appear when you don't want them. Set When not recording to Do Nothing.
Stop the console from changing anything. Turn off This connection can trigger CuePoints.
Still stuck. Send /cuepoints/system/ping. A pong back means the network, the port and the connection are all fine, and the problem is in the message you were sending.
Message Reference
Every message CuePoints understands, and everything it sends back.
You don't need this to use OSC; a preset on the pane fills the wording in for you. This is for building something custom: a Companion page of your own, a tablet layout, or a console template that isn't one of the presets.
All addresses use the /cuepoints/ prefix. Arguments use standard OSC types: i is a whole number, f is a decimal, s is text.
Transport
Address | Args | Description |
|---|---|---|
| — | Toggle play/pause |
| — | Play (only if stopped) |
| — | Pause (only if playing) |
| — | Pause, then jump to start ~100 ms later |
| — | Jump to start + play |
|
| Skip N seconds. Coerced to Integer; a fractional value truncates ( |
|
| Jump to position. Ignored unless |
|
| Jump to the first CuePoint in the list with this manual Cue ID and this CuePoint type (exact name match). Cue ID |
Cue Navigation
Address | Args | Description |
|---|---|---|
| — | Go to next CuePoint |
| — | Go to previous CuePoint |
|
| Jump to a cue by manual Cue ID, or by the CuePoint's Label text (exact match). Searches from the end backwards, so the last match wins. Cue ID |
Two ways to go to a cue, and they behave differently.
/cuepoints/transport/gotocuetakes a cue type as well as an ID and finds the first match./cuepoints/cue/gotoignores the type and searches backwards, so the last match wins. If you have the same Cue ID on more than one cue, that difference decides where you land.
Track
Address | Args | Description |
|---|---|---|
|
| Load track by index or name. A no-op if that track is already loaded |
| — | Load next track |
| — | Load previous track |
Volume
Address | Args | Description |
|---|---|---|
|
| Set absolute volume, clamped to 0-255 |
|
| Adjust volume relatively, clamped to 0-255 |
This is the track's audio only. Timecode going out is not affected.
Loop
Address | Args | Description |
|---|---|---|
|
| Toggle Loopback to Start Point on Pause. Pressing Pause seeks the playhead to a designated start point |
|
| Toggle A-B Loop for the loaded track. Playback wraps from B back to A. Sets absolute state |
Timecode
Address | Args | Description |
|---|---|---|
|
| Enable/disable LTC listener |
|
| Enable/disable auto-follow |
|
| Enable/disable Art-Net timecode generator. Enabling it force-disables the MTC generator |
|
| Enable/disable MTC generator. Enabling it force-disables the Art-Net generator |
Art-Net and MTC are one or the other. Turning either on turns the other off, because there is a single timecode generator behind them. See Timecode.
Connection Settings
Arg 1 identifies the slot: i = 1-based index (1-8), s = the connection's exact Name. Mode aliases ignore case, spaces, hyphens and underscores.
Address | Args | Description |
|---|---|---|
|
| Set RecordingMode. Valid: |
|
| Set NotRecordingMode. Valid: |
|
| Set Send CuePoints Status Messages. Non-zero = Send, |
These are the Cue Trigger Actions from the pane, changed remotely. Handy for a desk that should create cues during a tech and do nothing on a show day, without anybody touching the laptop.
Recording
Address | Args | Description |
|---|---|---|
| — | Start recording |
| — | Pause recording (can resume) |
| — | Resume a paused recording |
| — | Stop recording and save the file |
| — | Discard/cancel recording without saving |
stop keeps the file. terminate throws it away. Label those two clearly on whatever you build.
CuePoint Creation
Address | Args | Description |
|---|---|---|
|
| Create CuePoint at the playhead. Type is matched by exact name, and must be editable and visible |
The cue type has to be visible and editable for this to land. A hidden or locked type is skipped, which is the usual reason a create that looks right does nothing.
Big Label Display
Address | Args | Description |
|---|---|---|
| — | Show the big label overlay |
| — | Hide the big label overlay |
System
Address | Args | Description |
|---|---|---|
| — | Reply with |
| — | Reply |
| — | Save the current project (ignored when no project file is open) |
Outbound Feedback
These are messages CuePoints sends you, so a Stream Deck or a tablet can show what the show is doing.
Sent only to connections whose Send CuePoints Status Messages setting is Send (default: Disabled). Each address is sent on change, plus a 1 Hz heartbeat.
Address | Args | Description |
|---|---|---|
|
|
|
|
| Playback state. |
|
| Loopback-to-start-on-pause state |
|
| A-B Loop mode |
|
| A-B Loop start point (A) |
|
| A-B Loop end point (B) |
|
| Timecode auto-follow state |
|
| Master volume level |
|
| Current RecordingMode for slot |
|
| Current NotRecordingMode for slot |
|
| Current status feedback state for slot |
Nothing arrives until you turn it on. Feedback is off by default on every connection; switch on Send status messages for that connection under Message Routing.
Because everything repeats once a second, a button that lights up when the show is playing recovers on its own if it misses a message or you plug it in halfway through.
Command Template Placeholders
These go in the messages CuePoints sends out: the per-connection OSC Go trigger template, and the OSC command on an individual CuePoint or a CuePoint type. CuePoints swaps each one for the real value as the cue fires, so a single template serves your whole show.
Case-insensitive.
Placeholder | Value | Notes |
|---|---|---|
| CuePoint's Cue ID | Formatted as integer when whole ( |
| Last word of the CuePoint type name | E.g. type "Cuelist 2" → |
| Full CuePoint type name | |
| Full CuePoint type name | Alias of |
| The Label column text | |
| The Command column text | |
| The Note column text | |
| The Note column text | Alias of |
| CuePoint position in seconds | |
| CuePoint position as timecode | Uses the track's primary LTC stripe frame rate |
| Fade time (seconds) | |
| Out-fade time (seconds) |
A CuePoint of type "Cuelist 2" with Cue ID 5.1, Label "Blackout":
{CuelistID} is the useful one for lighting desks: name your CuePoint Types Cuelist 1, Cuelist 2 and so on, and one template fires the right cue list every time.
Join our Facebook Community
Any other questions? Get in touch