Note on SLIP for OSC

OSC requires a packetized transport mechanism. The commonly used UDP is packetized, but TCP and Serial are not. SLIP provides packetization of arbitrary length data.

Serial Line Internet Protocol

  • Mostly obsolete, except for microprocessors
  • Extremely low overhead, python one-liner
  • Fully stateless for client
  • Double-ENDed SLIP is a good idea (prevents bad data on partial packet)
  • SLIP encoder only needs to be operational when encoding data sections (can be idle over address, type tags, etc). For floating point conversions SLIP conversion can be pushed down to the byte level. All of the input must be SLIP decoded.

We also suggest that SLIP encoding be used for binary capture of an OSC stream, e.g. as in “cat.osc /dev/osc > file”.

For IANA-typed documents we use the header,

  • Content-Type: x-application/osc; version=”1.0”; framing=”slip”