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 type
BOOL
INT
FLOAT
STRING
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 /
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.