Manual / Reference
OSC Dictionary
Every OSC message OpenFollow listens for, grouped by family. Start at the message index for the full list, or jump to a family in the sidebar. Each entry gives the address, its arguments, and what it does.
Control is one-way. OpenFollow acts on the messages it receives but sends no acknowledgement or reply, so a sender can't read state or confirm delivery over this channel. For sending OSC out to consoles, media servers, and audio engines, see OSC Transmitters.
Transport
UDP, default port 8765. The receiver accepts unicast, subnet broadcast, and – when a Multicast group is set – multicast. Every family below shares this one receiver. Enable and configure it under Input → OSC Input; the operator-message family additionally needs Input → Operator Messages enabled.
Set an allowlist. With no allowed sender IPs, any device on the LAN can write to OpenFollow. See Networking → OSC input allowlist.
Reading an entry
- Address.
<id>in an address is an integer marker ID written into the path (/marker/3). Fixed text matches literally. - Arguments. Positional, in the order shown. Type tags:
iinteger,ffloat,sstring. Square brackets mark an optional argument ([f]). Numbers are read leniently – a value sent as the other numeric type, or as a numeric string ("3","8.0"), is accepted. - Coordinates. Metres, PSN convention: X = stage left, Y = upstage, Z = up. All position writes are absolute.
Message index
| Address | Arguments | Action |
|---|---|---|
| Marker position | ||
/marker/<id> | f f f | Set a marker's X, Y, Z. |
/marker/<id>/x | f | Set a marker's X only. |
/marker/<id>/y | f | Set a marker's Y only. |
/marker/<id>/z | f | Set a marker's Z only. |
| Operator messages | ||
/message | s [s] [i] [f] | Show an operator message card. |
/message/clear | [i] | Clear operator messages. |
Marker position
Drive any marker you control directly from an external system. Requires OSC Input enabled. Within a frame, last-write-wins per axis, and these messages share that frame with the gamepad, keyboard, and mouse – an OSC write landing on the same frame as a stick deflection overwrites that axis. Full context and worked TouchOSC / grandMA3 examples: Gamepad, Keyboard & OSC → OSC input.
/marker/<id> f f f
Set marker <id> to an absolute position. The three floats are X, Y, Z. A triple replaces any per-axis writes queued for the same marker in the current frame.
/marker/1 3.0 5.0 1.65 # marker 1 to X 3.0, Y 5.0, Z 1.65
Fewer than three arguments, or any non-finite value, drops the message.
/marker/<id>/x /y /z f
Set one axis of marker <id>, leaving the other two untouched. Takes a single float. A per-axis write after a triple overrides only that axis; a triple after per-axis writes resets all three.
/marker/1/x 3.0
/marker/1/y 5.0
/marker/1/z 1.65
Anything other than exactly one finite float drops the message.
Operator messages
Short text cards – typically the operator's next cue – shown on the Operator Screen. Requires both OSC Input and Operator Messages enabled. Cards route per marker or broadcast to every station; full behaviour in Operator Messages.
/message s [s] [i] [f]
Show a card. Only the first argument is required; trailing arguments fill in left to right.
| # | Argument | Type | Meaning |
|---|---|---|---|
| 1 | message | s | The main line of text. An empty or whitespace-only string is ignored. |
| 2 | info | s | Optional second line, e.g. a cue number. Defaults to empty. |
| 3 | markerId | i | Routing target. 0 broadcasts to every station; 1 or higher shows only on the station controlling that marker. Defaults to 0. |
| 4 | seconds | f | Auto-dismiss after this many seconds. 0 keeps the card until cleared. Defaults to 0. |
/message "Cue 12 - GO" "Lead vocal" 3 0 # to whoever holds marker 3, stays up
/message "House to half" # broadcast, no auto-dismiss
A numeric argument that can't be read at all – or a negative markerId – drops the whole message.
/message/clear [i]
Clear operator messages. With no argument, clears every card on the station. With one integer, clears only the cards routed to that marker.
/message/clear # clear all
/message/clear 3 # clear marker 3's messages
See also
- Gamepad, Keyboard & OSC → OSC input – receiver settings and worked TouchOSC / grandMA3 examples.
- Operator Messages – placement, scale, and marker routing.
- Networking & Security → OSC input allowlist – locking the receiver down.
- OSC Transmitters – the outbound side: sending OSC to your show control.