Osc Simpl

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 UI to import samples and remove Osc Simpl from your project.


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.