What Is libossia and How Does It Relate to ossia score?
Updated
libossia is the shared protocol layer that sits underneath ossia score. It is not a sequencer or an end-user application; it is the library that implements a common interface to protocols such as OSC, MIDI, DMX, HTTP, MQTT, CoAP, and BLE, so that any application built on it can speak those protocols, bridge between them, and expose them through a consistent API. If you want a ready-made intermedia sequencer, use ossia score. If you are writing your own software and need protocol interoperability inside it, libossia is the piece you integrate.
libossia vs. ossia score
| libossia | ossia score | |
|---|---|---|
| What it is | A protocol library | A free, open-source, cross-platform intermedia sequencer |
| Who it is for | Developers integrating protocol support into their own apps | Artists, performers, and technicians scripting interactive scenarios |
| What it provides | A common interface to many protocols, plus bridging | A timeline, nodal view, scripting, and a UI over those protocols |
| How you use it | Link against it in your codebase | Download and run the application |
The relationship is one of dependency: ossia score exposes the protocols that libossia implements. The site states that these protocols "are implemented behind a common interface in libossia," and that any app using libossia can benefit from their support and bridge them. In ossia score, those same protocols appear under a simple UI.
What protocols does libossia cover?
According to the ossia site, the protocols implemented behind the common libossia interface include:
- OSC
- MIDI
- DMX
- HTTP
- MQTT and MQTTv5
- CoAP
- BLE (Bluetooth Low Energy)
- Spout and Syphon
- Phidgets
- Gamepad
- Wiimote
- Avid C|24
Because they share one interface, an application using libossia can bridge between them rather than writing separate integrations for each. For example, a tool could receive MIDI from a controller and forward it as OSC to another piece of software without the developer building two unrelated protocol stacks.
What can developers do with libossia?
The library is aimed at adding protocol support, bridging, or OSCQuery integration to your own software. Concretely, that means:
- Add protocol support to an application by implementing against libossia's common interface instead of each protocol individually.
- Bridge protocols, so data arriving on one protocol can be sent out on another.
- Integrate with OSCQuery, the more advanced discovery and connection protocol mentioned alongside traditional OSC connection.
- Connect creative coding environments such as Max, Pure Data, Processing, and openFrameworks, either through a traditional OSC connection, through OSCQuery, or through direct integration of libossia.
The site lists Max, Pure Data, openFrameworks, Processing, glslViewer, Madmapper, and Millumin among compatible environments.
When to choose which
Choose ossia score when you need a finished intermedia sequencer: a timeline for sequencing media, a nodal view for modular patching, embedded scripting languages (JavaScript for livecoding and mappings, Faust for audio processors), and a UI that already surfaces all the supported protocols.
Choose libossia when you are building or extending your own application and need the protocol layer itself — the common interface, the bridging, and the OSCQuery integration — without adopting the sequencer application around it.
A practical way to decide: if your question is "how do I sequence this interactive show?", you want ossia score. If your question is "how do I make my software talk OSC, MIDI, MQTT, and BLE through one API?", you want libossia.