Tune by Mozaiklabs

OAAT — il protocollo open-source che democratizza l'audio bit-perfect multi-room

Il problema: l'audio ad alta fedeltà è sotto chiave

Da 20 anni lo streaming audio in rete ad alta fedeltà è prigioniero di protocolli proprietari. RAAT (Roon) offre una qualità irreprensibile — ma a quale prezzo? Certificazione a pagamento, codice chiuso, ecosistema captivo. DLNA è aperto ma tecnicamente limitato: nessuna sincronizzazione multi-room, gapless aleatorio, latenza elevata.

OAAT (Open Advanced Audio Transport) risolve questo dilemma. È un protocollo di trasporto audio in rete che ho progettato e implementato in Rust. Completamente open-source con licenza Apache 2.0, combina il meglio dei due mondi.

Cosa porta OAAT

  • Audio bit-perfect — PCM fino a 768 kHz / 32 bit, DSD nativo fino a DSD512. Zero resampling, zero compromessi.
  • Multi-room sub-millisecondo — sincronizzazione PTP tra endpoint, meno di 1 ms di scostamento. Comparabile a RAAT, senza la licenza.
  • Negoziazione intelligente — il protocollo adatta automaticamente il formato alle capacità del DAC. Nessuna configurazione manuale.
  • Zero barriere — nessuna certificazione, nessuna licenza, nessun DRM. Un produttore può implementare un endpoint conforme in ~1.500 righe di Rust.

Architettura a 3 canali

A differenza di DLNA (HTTP pull, XML/SOAP), OAAT separa le responsabilità:

  • Controllo (TCP porta 9740) — messaggi JSON leggeri: handshake, negoziazione del formato, play/pause, metadati
  • Audio (UDP porta 9741) — pacchetti binari con timestamp di presentazione, server-push, zero head-of-line blocking
  • Clock (UDP porta 9742) — scambi PTP per la sincronizzazione multi-room

La scoperta è automatica via mDNS/DNS-SD. Collega un endpoint alla rete e compare. Punto.

graph LR
    A["Tune Server"] -->|"TCP :9740 — controllo 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

Confronto tra i protocolli

  • OAAT: open source (Apache 2.0), bit-perfect, DSD nativo, sync multi-room < 1 ms, ~1.500 righe per un endpoint
  • RAAT (Roon): bit-perfect, DSD, multi-room — ma proprietario, certificazione a pagamento, codice chiuso
  • DLNA/UPnP: aperto — ma nessuna sync multi-room, gapless poco affidabile, DSD solo in DoP
  • AirPlay 2: multi-room Apple — ma limitato a 48 kHz/24 bit, nessun DSD, ecosistema chiuso
  • Chromecast: solo Google, resampling lossy, 48 kHz max

Dal protocollo al prodotto: un Raspberry Pi da 100 €

Per dimostrare che OAAT non è soltanto una specifica teorica, ho trasformato un Raspberry Pi 4 con un DAC Audiophonics ESS 9038Q2M in un endpoint audio di fascia alta:

  • Volume hardware tramite i registri I2C del DAC
  • 7 filtri FIR configurabili (minimum phase, linear phase, apodizing...)
  • Schermo touch da 7 pollici con l'interfaccia Tune in modalità kiosk
  • Servizio systemd, avvio automatico, riconnessione trasparente

Costo totale: ~100 €. Un endpoint certificato Roon Ready parte da 500 €.

👉 La guida completa all'installazione è disponibile: Trasformare un Raspberry Pi in endpoint audio OAAT.

Per produttori e sviluppatori

Il trait HAL (Hardware Abstraction Layer) si riduce a 5 metodi. Lo strumento di conformità automatizzato valida la tua implementazione con 20 test.

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>;
}

Integra il crate oaat-controller nel tuo server musicale per ottenere il multi-room bit-perfect. Binding C (FFI) disponibili per l'integrazione nativa.

I numeri

  • 9 crate Rust, ~8.000 righe di codice
  • 20 test di conformità automatizzati
  • Meno di 1 ms di sync multi-room (misurato)
  • ~50 MB di RAM in funzionamento
  • Compatibile con PCM 768/32, DSD512, FLAC compresso
  • Licenza Apache 2.0

Integrazione in Tune

OAAT è già integrato in Tune, il server musicale a sorgente disponibile (BSL 1.1) sviluppato da MozAIk Labs. Gli endpoint OAAT vengono scoperti automaticamente e appaiono come zone di riproduzione — allo stesso modo di DLNA, AirPlay o Chromecast, ma con una qualità audio superiore.

Link