The OSLS browser 3D designer showing a layout with labelled speakers on a sphere
Open source · Apache 2.0

Any layout you can dream up.

The Orbit Speaker Layout System — describe any speaker rig once, up to 64 channels, and drive it everywhere. One file, one source of truth.

Up to 64 channelsADM · IAMF · MPEG-HTypeScript · C · Swift · WASM
Inside OSLS

Describe the rig, not the renderer.

One human-readable file carries the geometry and the labels. What you do with them stays yours.

One file per layout

A rig, described once

Labels and channel order can never drift again.

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 and its reference frame, so nothing is duplicated across your app, engine and UI.

Human-readableSP-labels · BS.2051Cartesian + polarValidator-checked
An .osls layout file — SP-labels, Cartesian and polar positions, LFE and aliases, validator-checked
Design it in the browser

Build any rig you can imagine

From 7.1.4 to a 30-speaker dome, in a few minutes.

Open the browser 3D designer, drop speakers where you want them and export a layout in seconds. 10.1.4, 22.2, Auro — if you can describe it, OSLS can carry it, up to 64 channels.

3D designerUp to 64 channelsExport .osls
The OSLS browser 3D designer — build and validate any speaker layout with live positions and SP-labels
Straight into Orbit

Custom output, in Orbit & Orbit Pro

Your rig, monitored properly rather than folded down.

Load an .osls layout and monitor to it directly. IAMF and ADM map to your speakers per their specs, scene- and object-based content uses every speaker, then the routing matrix patches each one to a device output.

Both Orbit editionsRouting matrixADM · IAMF
Orbit’s Speaker Layout & Routing panel — custom layouts, .osls import and a full output routing matrix
Scope

It describes the rig. Nothing more — and that is the point.

What it carries
  • 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), from a shared registry
  • LFE flags and aliases, so the same rig is understood everywhere
What it does not
  • A renderer — 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
Open source

Fork it, build on it, ship it.

TypeScript
For the web and Node
C ABI
Drop into any native engine
Swift
First-class on Apple platforms
WASM
Browser resolves layouts identically to native
Licence

The full spec, JSON Schema, blessed layouts and reference SDKs are on GitHub under Apache 2.0 — permissive, with an explicit patent grant.

View on GitHub ↗

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 routing matrix. The speaker-layout view with solo, mute and custom groups is in Pro.

Apache 2.0With explicit patent grant Up to 64chAny layout you can describe