OSC Message Structure

OSC messages consist of the following elements:

  • Address Pattern - a string of data indicating where to send the message to and what to do when it arrives.
  • Argument - extra data added to the end of the message. This can be optional, depending on the address pattern.

While this structure is the same across all implementations of OSC, address patterns and arguments are specific to the software or hardware involved. While specific examples for both Eos and other OSC implementations are used throughout this section, consult the documentation for any third-party OSC devices to determine how to configure OSC messages for your system.

Address Pattern

The address pattern is the main body of an OSC message, consisting of an address determining where the message will be sent and instructions on what to do when it gets there. All OSC commands directed to Eos must begin with /eos/.

The address patterns used in this manual use angle brackets (<>) to denote a variable element, such as a cue or channel number (<number>) or a parameter name (<parameter>). For a full list of supported OSC address patterns, see the OSC Dictionary.

Action Address Pattern Examples
Run an Eos cue. /eos/cue/<number>/go /eos/cue/1/go - runs cue 1 in the current cue list.
Set an Eos channel to full. /eos/chan/<number>/full /eos/chan/1/full - sets channel 1 to full.
Stop a Hog cue list. /hog/playback/halt/<number> /hog/playback/halt/1 - stops cue list 1.
Run a QLab cue. /workspace/<number>/go /workspace/1/go - runs the next cue in workspace 1.

Arguments

Arguments are additional data that can add specificity to an OSC message. Depending on the address pattern, an argument may or may not be necessary. Argument options are specific to the commands being sent, and not all argument options are compatible with all OSC commands.

Action Address Pattern Arguments Examples
Run an Eos cue. /eos/cue/go Cue number. /eos/cue/go=1 - runs cue 1 in the current cue list.
Set an Eos channel to a level. /eos/chan/<number>/at Intensity level (0-100). /eos/chan/1/at=50 - sets channel 1 to 50%.
Set the Hog grand master to a level. /hog/hardware/fader/0 Fader level (0-255). /hog/hardware/fader/0=127 - sets the grand master to 50%.

Most arguments will be numbers; see the int32 and float32 formats detailed in OSC Data. Eos uses the equals (=) character to separate address patterns from any included arguments. Third-party OSC devices may require a different character, and may not be able to interpret incoming messages that use equals. Consult the documentation for any third-party OSC devices to determine the appropriate character for appending arguments to your address pattern.

As you can see, there are often multiple ways to send an OSC message that achieve the same result; for example, /eos/cue/1/fire and /eos/cue/fire=1 will both activate cue 1 in the current cue list.