Osc Simpl


An Open Sound Control (OSC) implementation tailored for Unity and designed for those who love the flexibility of scripting.


by Sixth Sensor


★★★★★ star rating
Price History +

An Open Sound Control (OSC) implementation tailored for Unity and designed for those who love the flexibility of scripting. It is written from scratch and matured over several years of continuous use. OSC is a protocol for communicating between applications and devices easily using URL-style messages with mixed argument types. It is widely used in "creative coding”, music and VJ contexts, but also has potential as a general-purpose networking tool.


Requires basic experience with C# scripting. Please take a peek in the manual and reference to see if this is for you.


Reach support on the Osc Simpl forum thread.


UPDATE 2023: Osc Simpl is now distributed as a UPM Package instead of a bunch of files in your Assets folder. This means you must use the Package Manager to remove Osc Simpl from your project. Note that due to a BUG in the Package Manager, the Samples import UI is missing. While we wait for a fix, please access the samples directly in Packages/Osc Simpl/Samples.


Features

- ZERO heap garbage in the update loop! (*1)

- All OSC argument types (*2)

- Bundles with timetags

- Full two-way OSC address pattern matching

- Mapping of OSC addresses to methods

- Common Unity types as blobs

- Monitoring of incoming and outgoing messages

- Monitoring of remote connection status

- Optional filtering of message duplicates


Supports

- UDP IPv4 Unicast, Broadcast and Multicast

- API Compatibility Level .NET 2.0 and 4.x

- MacOS, iOS and Windows (*3)


Includes

- Manual

- Reference

- Examples

- Full source code

- Runtime UI prefabs


Tested with

OpenFrameworks, Processing, Max/MSP, VVVV, TouchOSC, Lemur, Iannix and Vezer.


Known issues

- Broadcasting from iOS not working.

- OscIn mappings targeting public fields (not properties) executes slow when the IL2CPP compiler is enabled.

- Interruptions on MacOS builds when window is background.


*1) If used as advised and your strings and blob lengths don't change.

*2) Except arrays.

*3) Not officially supported on other platforms, but it may work. WebGL, no.