OSLS
The Orbit Speaker Layout System.
Describe any speaker rig once — up to 64 channels — and drive it everywhere. One human-readable file per layout, a browser 3D designer, and a small SDK that keeps native, browser, Windows and mobile in perfect agreement. Any layout you can dream up.
Any layout · up to 64 channels · ADM / IAMF / MPEG-H · TypeScript / C / Swift / WASM
osls.io · MIT-friendly Apache 2.0 with an explicit patent grant
A rig, described once
Every layout is a single human-readable file. Each speaker carries its position — Cartesian, polar, or both — a stable ITU-R BS.2051 SP-label (M+030, LFE1…) and its reference frame. Nothing is duplicated across your app, engine and UI, so labels and channel order can never drift.
Build any rig you can imagine
Open the browser 3D designer, drop speakers where you want them and export a layout in seconds. 10.1.4, 22.2, Auro, a 30-speaker dome — if you can describe it, OSLS can carry it, up to 64 channels.
Custom output, in Orbit & Orbit Pro
Load an .osls layout in Orbit and monitor to it directly. IAMF and ADM map to your speakers per their specs — direct where possible, nearest-neighbour where not — while scene- and object-based content makes full use of every speaker. Then patch each speaker to a device output with the routing matrix.
It describes the rig — and stops there.
One source of truth for geometry and identity. The restraint is exactly what makes OSLS easy to build on.
- The geometry — where each speaker sits, in Cartesian and/or polar coordinates
- The identity — a stable BS.2051 SP-label and reference frame per speaker
- The per-spec channel orders (ADM, IAMF, MPEG-H), resolved from a shared registry
- LFE flags and aliases, so the same rig is understood everywhere
- A renderer — the down-mix, panning and HRTF maths stay in the audio engine
- A patch map — which physical output a channel hits is your app’s job
- Tied to one platform — the same file drives native, browser, Windows and mobile
Fork it, build on it, ship it.
The full spec, JSON Schema, blessed layouts and reference SDKs are on GitHub under the Apache 2.0 license — permissive, with an explicit patent grant. Contribute a layout, wire it into your workflow, or resolve OSLS in your own engine.
TypeScript
For the web and Node.
C ABI
Drop into any native engine.
Swift
First-class on Apple platforms.
WASM
The browser resolves layouts identically to a native app.
OSLS powers custom output in Orbit
Both Orbit and Orbit Pro read .osls layouts — monitor to any rig up to 64 channels, with a full output routing matrix. The speaker-layout view with solo, mute and custom groups is in Orbit Pro.