Skip to content

OSC

This is the osc plugin documentation.

Only single value packages are supported (e.g.: no xy information formatted as two floats). OSC transport is done (and only supported) over UDP.

Supported data types

  • bool
  • int
  • double
  • string

Only the basic OSC types are supported, with the addition of the bool and the exclusion of the blob: Bool, Int32, Float32, String are supported

Data typeBOOLINTFLOATSTRING
osc::bool
osc::int32
osc::int64
1
osc::float32
osc::double
osc::string
1. for as long as the int64 fits in the int32

Configuration options

The minimal device config when using the default options would be:

settings.yml
devices:
- type: osc
name: osc1
options:
ip: 10.0.0.9
port: 5000

In this example the OSC server is listening on port 5000 for messages, and no clients are configured.

A complete config would look like this:

settings.yml
devices:
- type: osc
name: osc1
options:
ip: 10.0.0.9
port: 5000
allow_all_clients: true
clients:
- name: client1
ip: 10.0.0.1
port: 8000
- name: client2
ip: 10.0.0.2
port: 9000

where

type

is always “osc” as this is the name of this plugin.

name

unique arbitrary name.

options/ip

the ip address of the interface where the OSC server should listen on. (default: 0.0.0.0 - any)

options/port

the tcp port that the OSC server is listening on. (default: 5000)

options/allow_all_clients

allows any client to send commands to this server. (default: false)

options/clients

the list of clients that will receive updates send from the server, and are allowed to send data to the server (when options.allow_all_clients is set to false, or omitted).

In this example the osc server is listening on port 5000 for messages, and 2 clients are configured that will receive the same data.

The options.clients list contains all the client devices that should receive OSC updates. The name is arbitrary and solely for documentation purposes, it can be omitted if so desired.

By default, the OSC server (on port 5000 in the example above) will only allow received messages from known / listed clients. This behaviour can be changed by setting options.allow_all_clients to true (default is false). Note however that this is only for incoming messages, an unlisted client will never receive updates from the server.

Mappings

Mapping for the OSC plugin have their address as the OSC path / address. They should always start with a /

settings.yml
mappings:
- name: osc-toggle1
from: { name: osc-server, address: /1/toggle1, type: bool }
to: { name: websock, address: toggle1, type: bool }
- name: osc-bool1
from: { name: websock, address: oscb1, type: bool }
to: { name: osc-server, address: /osc/bool/1, type: bool }

The from.type is ignored as it is set by the type of the received message, but it must be specified nonetheless. The to.type however determines what OSC type is send out.