An OSC, MIDI and DMX timeline
Draw automation curves for any OSC, MIDI or DMX parameter, add interactive triggers and conditions, and discover devices automatically with OSCQuery. Free and open-source, on Windows, macOS and Linux.
Free and open-source (GPLv3) · Windows, macOS, Linux, Raspberry Pi and web browser
ossia score started as a sequencer for OSC: every parameter of every device on the network becomes an address you can automate, record, map and score over time. It is used to control patches, game engines, media servers, lights and robots.
What you can do
- Automation curves on any address: OSC, MIDI CC, DMX channels, or the parameters of ossia score’s own processes (writing automations).
- OSCQuery: browse the parameters of compatible software (for instance patches and applications using libossia) and drag them into the score, instead of typing addresses.
- Interactive timelines: triggers wait for an incoming message, conditions choose between branches, loops and scenes repeat until something happens (breaking the timeline).
- Mapping: scale, smooth and transform values between devices, with curves, JavaScript or math expressions (mapper).
- Inputs everywhere: gamepads, Wiimotes, Leap Motion, MIDI controllers, serial ports and Arduino, Bluetooth LE sensors, depth cameras and tracking protocols (PosiStageNet, TUIO, RTTrP, OpenTrackIO) (sensors to OSC).
- Many protocols: OSC over UDP, TCP, WebSockets and serial, OSCQuery, MIDI, DMX (Art-Net, sACN, DMX USB), MQTT, CoAP, HTTP, LSL, CAN.
- Musical time: tempo, time signatures and quantization when the score must follow a beat (musical features).
- Zero configuration: OSC devices are found on the network with Bonjour/Zeroconf, and your own parameters can be published the same way or over OSCQuery.
- Every OSC transport: UDP, TCP client and server, SLIP and COBS framings, host names instead of IP addresses.
- Clean sensor data: calibrator, deadzones, noise gate, hysteresis, debounce and easing curves (value filter, calibrator).
- Address patterns: combine, apply and sweep OSC address patterns to drive many devices at once (pattern matching).
- MIDI tools: virtual MIDI ports, network MIDI ports provided by the operating system, MIDI file playback, filters, microtonal Scala scales, and the computer keyboard as a MIDI input (MIDI).
- Record and replay any device to CSV, including incoming DMX (recording).

OSC sequencing needs, and how ossia score answers them
| What you need | How ossia score does it |
|---|---|
| Automating the parameters of another program over time | Curves on any OSC, MIDI or DMX address, and OSCQuery to browse parameters instead of typing them. |
| The same tool on Windows, macOS and Linux | The same features on all three and on Raspberry Pi, except for features tied to an operating system or to hardware, such as Spout, Syphon or CUDA. |
| A timeline that waits for events, branches and loops | Triggers, conditions and loops are part of the timeline, not an add-on. |
| Turning controllers and sensors into OSC | Gamepads, MIDI controllers, Arduino, depth cameras and tracking systems, mapped with curves, JavaScript or expressions. |
| Sound and video next to the control data | Audio, video, 3D and shaders in the same timeline as your OSC, MIDI and DMX automation. |
| A simple control surface on a phone or a tablet | The browser remote, without installing an app. |
Pairs well with
ossia score speaks OSCQuery natively through libossia, which also exists for Max/MSP, Pure Data, Unity, Python, SuperCollider, openFrameworks and Qt: add a few objects to your patch or project and its parameters show up in score, ready to be automated.
Free and open-source (GPLv3) · Windows, macOS, Linux, Raspberry Pi and web browser