The OSC Message
This section is intended to provide a very brief overview of the OSC packet structure and how it relates to Art-Osc. The reader is urged to review the entire OSC document.
An OSC message is a string of contiguous bytes of size that is a multiple of 4. The OSC message comprises three parts:
- Address Pattern
- Type Tag String
- Argument List
The Address Pattern is a string beginning with the ‘/’ (forward slash) character (4710). The contents of the Address Pattern form the heart of the Art-Osc protocol (see ‘Address Pattern – structure’ below for more information).
Type Tag String
The Type Tag String is a string beginning with the ‘,’ (comma) character (4410). Each character in the string defines the type and order of the data in the Argument List. OSC defines numerous data types, but currently Art-Osc implements four:
The Argument List is a contiguous sequence of binary data, ordered and formatted as defined by the Type Tag String. The quantity, sequence and purpose of the Argument List varies based on the Language field of the Address Pattern.
Address Pattern Structure
The Address Pattern starts with the ‘/’ forward slash character. This character is also used to provide a hierarchical separator in the string. Art-Osc subdivides the Address Pattern into five sub fields:
- Object Vector
These sub fields are delimited by the forward slash as follows:
The signature is the two character pair of ‘AL’, both uppercase. The purpose of this field is to allow the Art-Osc server (receiver) to discriminate Art-Osc from other OSC traffic.
The Language field is used to describe the meaning and format of the three remaining fields (Object Vector, Instance and Parameter). The field is fixed length and contains three uppercase alpha characters.
Currently, four languages are defined:
The meaning of the Object Vector, Instance and Parameter vary based on the Language and so are described in detail in the Language pages: The DALI Forward Frame Language (DAF), The DALI Reverse Frame Language (DAR), The RDM Language (RDM), The Automation Language (AUT).