OSC Data

As with other types of network-based communication, OSC messages are composed of specific types and formats of data that are organized into packets.

Data Types

OSC packets are encoded using the following types of data:

  • int32 - a 32 bit integer. An integer is any positive or negative whole number. 0, 1, 42, -9000, etc.
    • uint32 - a variant that only allows positive integers.
    • bool - short for boolean, a data type that can only have a value of true (represented by 1), or false (represented by 0).
  • float32 - a 32 bit floating point number. A floating point number is any positive or negative number with one or more decimal places. 1.0001, -9.89, 10.5, etc.
  • string - any set of characters or words. "Hello world," "I'm afraid I can't let you do that Dave," etc.
  • blob - any binary data.
  • timetag - the number of fractional seconds since January 1st, 1900.

Packet Contents

OSC packets consist of the following information:

  • Start - in OSC v1.0, this indicates the length of the packet. In v1.1, this indicates the start of the packet.
  • Address pattern - where to send the message and what to do when it arrives. Address patterns vary based on the OSC devices involved.
  • Type tag - how many arguments of what type are included in the packet.
  • Arguments - optional data that adds additional specificity to the OSC command. Arguments vary based on the address pattern.
  • End - OSC v1.1 only. This indicates the end of the packet.

When working with OSC, Eos encodes the start, type tag, and end data automatically in the background. The address pattern and arguments are entered by the user and follow the OSC Message Structure.