The OSC Decoder takes incoming raw data - usually from a network connection - and decodes the OSC data contained within it.
OSC data may come from another software application (including Fugio) or hardware, either running/connected to the computer you're using, or sent over a local network, or even the Internet.
An OSC message comprises of an 'address', and zero or more items of data to be sent to that address
An OSC address is a string that is similar to a web site address, and always start with a '/':
Would be a very simple address, the destination being 'x'
Would be a nested address, the destination being 'z', which is under 'y', which is under 'x'
The ability to nest addresses means that OSC can create an endless hierarchy of names.
The destination part is where the data is being sent to, which will be decoded to an output pin, if there is one.
OSC specifies the kind of data that it is sending to the address, which may be zero or more items of data such as numbers, strings, or even colours.
Fugio is able to decode (almost) all kinds of OSC data and will automatically select the right kind of pin for you.
An OSC sender may want to send many OSC messages simultaneously, and this can have a serious impact on network and application performance if each message is sent individually.
OSC features the ability to combine several OSC messages together into a single network message called a bundle.
Fugio fully supports bundles and will decode them automatically if it receives them.
To send bundled OSC messages from Fugio, you should use the OSC Bundler node.
To access the data being sent, you need to add output pins to the Decoder node that match the address of the data you want to receive.
The easiest way to ensure you add the pins correctly is to connect Decoder Input pin to the network source node, and send some OSC messages to Fugio.
You should then right-click or ctrl-click (Mac) on the Decoder node and select 'Add Output Pin...' from the pop-up menu.
If the Decoder has successfully received some OSC messages from the source, you will see a list of addresses that you can add. Fugio will automatically assign the right pin type depending on the type of data received.
If you are working with a large hierarchy of names, you don't need to add them all to the Decoder node. You can split the decoding by using an OSC OSC Split node.
For example, if you had the following incoming OSC addresses for some kind of controller:
You could split this up by adding a pin to the Decoder called:
Then create a OSC Split node, connect it:
/control1 -> Split/Input
Add output pins to the Split node:
- Namespace - OSC Namespace - Information about the received hierarchy of OSC names