Tune by Mozaiklabs

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.

Links