maolan-engine is the Rust audio engine that powers Maolan.
It provides:
- Audio and MIDI track processing
- Timeline-oriented recording and clip playback
- Track routing and plugin graph routing
- Offline bounce and export helpers
- Out-of-process (OOP) plugin hosting for CLAP, VST3, and LV2 (Unix) — each plugin runs in a separate OS process for crash isolation
- Platform audio backends for Linux, FreeBSD, macOS (CoreAudio), and Windows (WASAPI)
The engine uses a two-tier process model:
- Main DAW process — hosts the UI, audio engine, and project state.
- Plugin host processes — one per plugin instance, launched by the engine. Each host loads the plugin binary in-process and communicates with the DAW via shared-memory IPC (
mmapon Unix,CreateFileMappingWon Windows) and lightweight cross-process events (pipeon Unix, named auto-reset events on Windows).
Plugins are never loaded directly into the DAW. If a plugin crashes, only its host process dies; the DAW detects the failure, bypasses the plugin, and continues playback.
| Feature | Linux | FreeBSD | macOS | Windows |
|---|---|---|---|---|
| Audio backend | ALSA, JACK | OSS, JACK | CoreAudio | WASAPI |
| CLAP hosting | ✅ OOP | ✅ OOP | ✅ OOP | ✅ OOP |
| VST3 hosting | ✅ OOP | ✅ OOP | ✅ OOP | ✅ OOP |
| LV2 hosting | ✅ OOP | ✅ OOP | ✅ OOP | N/A |
| GUI embedding | X11 | — | — | HWND (SetParent) |