OAAT — das Open-Source-Protokoll, das bit-perfektes Multiroom-Audio demokratisiert
Das Problem: High-Fidelity-Audio ist eingesperrt
Seit 20 Jahren ist hochwertiges Netzwerk-Audiostreaming in proprietären Protokollen gefangen. RAAT (Roon) bietet eine tadellose Qualität — aber zu welchem Preis? Kostenpflichtige Zertifizierung, geschlossener Code, geschlossenes Ökosystem. DLNA ist offen, aber technisch begrenzt: keine Multiroom-Synchronisation, unzuverlässiges Gapless, hohe Latenz.
OAAT (Open Advanced Audio Transport) löst dieses Dilemma. Es ist ein Netzwerk-Audiotransportprotokoll, das ich entworfen und in Rust implementiert habe. Vollständig quelloffen unter Apache-2.0-Lizenz, vereint es das Beste aus beiden Welten.
Was OAAT mitbringt
- Bit-perfektes Audio — PCM bis 768 kHz / 32 Bit, natives DSD bis DSD512. Kein Resampling, keine Kompromisse.
- Multiroom im Submillisekundenbereich — PTP-Synchronisation zwischen Endpoints, weniger als 1 ms Versatz. Vergleichbar mit RAAT, ohne Lizenz.
- Intelligente Aushandlung — das Protokoll passt das Format automatisch an die Fähigkeiten des DAC an. Keine manuelle Konfiguration.
- Keine Hürden — keine Zertifizierung, keine Lizenz, kein DRM. Ein Hersteller kann einen konformen Endpoint in ~1.500 Zeilen Rust implementieren.
Architektur mit 3 Kanälen
Anders als DLNA (HTTP-Pull, XML/SOAP) trennt OAAT die Zuständigkeiten:
- Steuerung (TCP Port 9740) — schlanke JSON-Nachrichten: Handshake, Formataushandlung, Play/Pause, Metadaten
- Audio (UDP Port 9741) — Binärpakete mit Präsentations-Timestamps, Server-Push, kein Head-of-Line-Blocking
- Clock (UDP Port 9742) — PTP-Austausch für die Multiroom-Synchronisation
Die Erkennung erfolgt automatisch über mDNS/DNS-SD. Endpoint ans Netzwerk anschließen, er erscheint. Punkt.
graph LR
A["Tune Server"] -->|"TCP :9740 — Steuerung JSON"| B["Endpoint OAAT"]
A -->|"UDP :9741 — Audio PCM/FLAC"| B
A <-->|"UDP :9742 — clock sync PTP"| B
B -->|"I2S / USB"| C["DAC"]
style A fill:#4a90d9,stroke:#333,color:#fff
style B fill:#50c878,stroke:#333,color:#fff
style C fill:#f5a623,stroke:#333,color:#fff
Vergleich der Protokolle
- OAAT: Open Source (Apache 2.0), bit-perfekt, natives DSD, Multiroom-Sync < 1 ms, ~1.500 Zeilen für einen Endpoint
- RAAT (Roon): bit-perfekt, DSD, Multiroom — aber proprietär, kostenpflichtige Zertifizierung, geschlossener Code
- DLNA/UPnP: offen — aber keine Multiroom-Sync, unzuverlässiges Gapless, DSD nur als DoP
- AirPlay 2: Multiroom von Apple — aber begrenzt auf 48 kHz/24 Bit, kein DSD, geschlossenes Ökosystem
- Chromecast: nur Google, verlustbehaftetes Resampling, maximal 48 kHz
Vom Protokoll zum Produkt: ein Raspberry Pi für 100 €
Um zu zeigen, dass OAAT nicht nur eine theoretische Spezifikation ist, habe ich einen Raspberry Pi 4 mit einem Audiophonics ESS 9038Q2M DAC in einen hochwertigen Audio-Endpoint verwandelt:
- Hardware-Lautstärke über die I2C-Register des DAC
- 7 konfigurierbare FIR-Filter (Minimum Phase, Linear Phase, Apodizing…)
- 7-Zoll-Touchscreen mit der Tune-Oberfläche im Kiosk-Modus
- systemd-Dienst, automatischer Start, transparente Wiederverbindung
Gesamtkosten: ~100 €. Ein zertifizierter Roon-Ready-Endpoint beginnt bei 500 €.
👉 Die vollständige Installationsanleitung ist verfügbar: Einen Raspberry Pi in einen OAAT-Audio-Endpoint verwandeln.
Für Hersteller und Entwickler
Der HAL-Trait (Hardware Abstraction Layer) besteht aus gerade einmal 5 Methoden. Das automatisierte Konformitätswerkzeug prüft Ihre Implementierung mit 20 Tests.
trait OaatHal {
fn configure_output(&mut self, format: AudioFormat) -> Result<()>;
fn write_frames(&mut self, data: &[u8], frames: usize) -> Result<usize>;
fn buffer_level(&self) -> usize;
fn set_volume(&mut self, level: u8) -> Result<()>;
fn actual_sample_rate(&self) -> Option<f64>;
}
Binden Sie das Crate oaat-controller in Ihren Musikserver ein, um bit-perfektes Multiroom zu erhalten. C-Bindings (FFI) für die native Integration sind verfügbar.
Die Zahlen
- 9 Rust-Crates, ~8.000 Codezeilen
- 20 automatisierte Konformitätstests
- Weniger als 1 ms Multiroom-Sync (gemessen)
- ~50 MB RAM im Betrieb
- Kompatibel mit PCM 768/32, DSD512, komprimiertem FLAC
- Apache-2.0-Lizenz
Integration in Tune
OAAT ist bereits in Tune integriert, den Musikserver mit verfügbarem Quellcode (BSL 1.1) von MozAIk Labs. OAAT-Endpoints werden automatisch erkannt und erscheinen als Wiedergabezonen — ebenso wie DLNA, AirPlay oder Chromecast, aber mit besserer Audioqualität.