v0.3.0 — First stable release: light, sound, and microphone 🎉
The first stable Orb release. After 14 phases, a full Python-to-Rust port,
and a long road of release candidates (beta → delta → rc2 through rc10),
the show control system is ready for real work.
What works end-to-end in this release:
🎭 Light
• Clean ECS core with priority layers (HTP dimmer/strobe, LTP color)
• Sequence / Cue / Programmer / Executor model
• Fade engine with easing, auto-advance (timed + song-position + song-end)
• Fixture profiles (TOML) with typed channel mapping
• DMX output: ENTTEC Pro serial, Art-Net, sACN/E1.31, BitWizard
• 40 Hz frame loop: tick → resolve → render → send
🔊 Sound
• Multi-deck music playback with per-deck fade-in/fade-out cues
• Providers: local files, librespot (Spotify Connect), Spotify Web API
search, WiiM stub
• Per-source OS-mixed audio output with automatic device rebind
• audio.toml schema v2, canonical 48 kHz internal sample rate
• Crossfade, level control, transport (play/pause/stop/goto) from REPL,
REST, MIDI, and motorized faders
🎤 Microphone
• Multi-mic capture via cpal, named device matching, per-channel split
• MultiMicMixer routed into the unified MultiLayerSoundDeviceSink
• DSP graph: noise gate, compressor, limiter, filters
• Per-channel volume actions and mute dispatch from cues
🎛 Control surfaces
• Icon P1-M motorized faders with touch-gated bidirectional sync,
per-strip buttons, V-Pot encoder, and per-executor speed modifier
• Intech EN16 / PBF4 with hot-plug and a virtual MIDI control surface
• Flic 2 buttons via vendored flicd (lazy-started)
• BLE-MIDI, MIDI CC + Note dispatch, song-position events
🐍 Embedded Python
• orb-daemon hosts CPython 3.13 via PyO3, no IPC
• IPython REPL with GrandMA3-style command preprocessor
• SmartLists, project API, fixture importer (OFL + GrandMA3 XML)
🌐 Web
• actix-web REST + WebSocket
• Svelte 5 dashboard auto-built and embedded into the daemon binary
• Auto-open browser, --app mode for a standalone window
• Playwright e2e suite (opt-in via ORB_TEST_UI=1)
📊 Tests
• 1821 Rust tests + 363 Python tests = 2184 passing
• Hardware-gated suites for DMX, Flic, P1-M, and real audio I/O
Used in production for light, sound, and microphone control.
On to v0.4.