Skip to content

OSC Reference ​

Exaplay 3 receives OSC commands for transport, cues, show state and Inputs, and sends OSC to other devices — timecode, cue lines, Data Tracks. For a guided setup with consoles and show controllers, see External Show Control.

Receiving ​

ParameterValue
ProtocolOSC 1.0 over UDP
Default port8000 — always listening
ConfigurationMenu → Settings → Communication → OSC Listen (ADDRESS:PORT; a change re-binds immediately)
Address prefixexaplay by default (Settings → Communication → OSC Prefix). Compared case-insensitively; must not contain /
BundlesAccepted — each message inside runs at once; the time tag is ignored

The address pattern is /<prefix>/<composition>/<verb>, and the prefix is required: with the default prefix, /comp1/play is ignored. Only when OSC Prefix is left empty does Exaplay accept /<composition>/<verb> (and still /exaplay/<composition>/<verb>). /tuio/… and the timecode address never take the prefix.

  • <composition> is the composition's ID (its variable name, comp1) or its name — names are case-insensitive, with _ standing for a space (Main_Show). If a reference matches both, the ID wins.
  • Verbs and IDs are case-sensitive: /exaplay/comp1/Play does nothing.
  • While a project is loading, incoming messages are dropped.

Compositions ​

AddressArgumentsAction
/exaplay/<comp>/play—Start
/exaplay/<comp>/start—Start (alias of play)
/exaplay/<comp>/pause—Pause
/exaplay/<comp>/stop—Stop
/exaplay/<comp>/restart—Play from start (Playlist: the current item from its start, without stopping)
/exaplay/<comp>/cuei index, f (rounded) or s nameTimeline: jump to the cue and fire it (cue variable index or name). Playlist: play the item at that 1-based position, or by name
/exaplay/<timeline>/framei (or f, truncated)Timeline only: jump to that frame, counted at the Timecode frame rate

There is no seek and no property write over OSC (a screen's calibration switches, below, are the exception). To seek, use TCP/UDP (comp1.set:time=12.5) or HTTP; on a Timeline, /frame jumps to a frame. To drive a value, send an Inputs channel (below) and map it in Inputs.

The addresses cuetime, cueindex, cueframe, cueduration, status and seek are Exaplay's own multi-client sync channel: a master sends them and only a client acts on them. A standalone or master engine ignores them.

Global ​

AddressArgumentsAction
/exaplay/global/start—Start all compositions
/exaplay/global/stop—Stop all compositions
/exaplay/global/showmodeon/off/toggleShow Mode
/exaplay/global/videomuteon/off/toggle, optional fade seconds (0–60)Blank every output to black (and back). The fade seconds become the blank fade time, so later blanks use them too
/exaplay/global/blankfadeseconds, 0–60Set the blank fade time without blanking
/exaplay/global/identifyon/off/toggleLabel every output window (Identify)
/exaplay/global/showguideson/off/toggleOutline every screen and field (Outlines)
/exaplay/global/audiomuteon/off/toggleMute all audio. On a multiclient master it mutes every machine; each machine's master volume stays its own
/exaplay/global/correctionbypasson/off/toggleRaw wall: every output without its calibration (no VIOSO, warp, edge blend or black level). On a multiclient master it switches every machine
/exaplay/global/failoverpromote / arm / disarmMain/Backup failover, sent to the backup: promote takes over now; arm / disarm arm the backup for an automatic take-over (needed while Require Arming is on) — see Multi-Client › Main / Backup Failover
/exaplay/global/restart—, project, or cleanRestart the engine (reload the project, or start empty). default/reload = project; empty/blank = clean

An on/off argument can be a string ("on", "off", "toggle", "1", "0", "true", "false") or a number (1 / 0). Every global verb also takes its argument as the last address segment, for devices that cannot send arguments: /exaplay/global/showmode/on, /exaplay/global/restart/clean, /exaplay/global/blankfade/3.

Screens (calibration) ​

A screen is addressed by its ID (screen1, screen2, …, shown in the screen's Inspector). The three switches of the calibration's Edit… dialog:

AddressArgumentsAction
/exaplay/screen1/calibrationon/off/toggleDraw the screen's calibration, or not. Off draws the screen as if no calibration file were set (Exaplay's own warping and blending apply); on applies in the next frame
/exaplay/screen1/calibration/blendon/off/toggleThe calibration's edge blending
/exaplay/screen1/calibration/blackon/off/toggleThe calibration's black level, a custom black level and the overall lift
/exaplay/screen1/calibration/reload—Reapply the calibration from its file — the current one draws until the new one is ready

The argument may also be the last address segment: /exaplay/screen1/calibration/blend/off. A switch applies in one frame on every output of the screen; on a multi-client master it switches every machine at the same moment. The switches are saved with the project.

Timecode ​

AddressArgumentsAction
/timecode (the configured OSC Address; no prefix)f or i seconds, or s "HH:MM:SS:FF"Timecode for slaved compositions

The time is the argument, never part of the address. /timecode is only acted on by compositions whose own Inspector → Timecode Sync is a slave mode — with none, it is ignored. In Timecode Mode OSC Timecode (slave) the Global Offset is added. The address also matches when it is the first or second segment of a longer address. See Timecode Sync.

Inputs (tracking channels) ​

AddressArgumentsAction
/exaplay/track/<channel>x [y]Position
/exaplay/track/<channel>/xone numberX only
/exaplay/track/<channel>/yone numberY only
/exaplay/track/<channel>/clickoptional number (default 1)Click
/tuio/… (no prefix)TUIO 1.1Touch / objects, as channels tuio1…, tuio-obj<id>, tuio-blob…

Numbers may be f, i, a numeric s, or OSC T / F.

Examples ​

/exaplay/comp1/play                  start comp1
/exaplay/Main_Show/play              the same, by name ("Main Show")
/exaplay/comp1/cue 5                 fire cue 5 in comp1
/exaplay/comp1/cue "Blackout"        fire the cue named Blackout in comp1
/exaplay/Lobby/cue 2                 play Playlist item 2
/exaplay/comp1/frame 750             Timeline comp1: jump to frame 750
/exaplay/global/showmode "on"        Show Mode on
/exaplay/global/showmode 1           the same, as a number
/exaplay/global/showmode/on          the same, word in the address
/exaplay/global/videomute "on" 3.0   blank to black over 3 s (3 s is now the blank fade time)
/exaplay/screen1/calibration/blend 0 screen1: calibration without edge blending
/exaplay/track/wand 0.25 0.75        Inputs channel "wand"
/timecode "01:00:00:00"              chase timecode (slaved compositions)

Sending ​

WhatAddress and argumentsSet up in
Cue script lineOSC>host:port,/address[,i:<int>][,f:<float>][,s:<text>] — one message per lineA cue's script box — Action type Custom, the box with the ⚡ Wizard button (⚡ Wizard → OSC). See Cue Script Reference
Data Trackthe track's OSC address (default /data-track) with one fData Track → Output → Format: OSC; sent while the composition plays, at the track's rate (1–120 Hz). See Data Tracks
Timecode (Master)the OSC Address (default /timecode): a bundle with f seconds, i frame rate, s HH:MM:SS:FFTimecode Mode Master, a Master Composition and OSC Timecode Out. Sent every ~8 ms (about 125 per second) to the OSC Clients lines. See Timecode Sync
Failover "On Promotion Send"OSC> lines as aboveMulti-Client › Failover

OSC Clients (Menu → Settings → Communication) is a list of host:port lines. It receives the master timecode — and also Exaplay's own fleet telemetry, which runs at all times: per composition exaplay/<id>/cueindex, cuetime, cueframe, cueduration, status about 125 times a second, plus exaplay/global/… state messages. These addresses are sent without a leading slash. They are meant for Exaplay clients; a third-party device on that list simply receives them too. A line may be a $Name from System → Global Variables; a line that does not resolve is skipped.

Other UDP ports ​

PortPurpose
12000 (UDP)PatternGenerator control (domeprojection PG protocol), used by ProjectionTools — always listening

See Also ​

Exaplay 3 User Documentation