ALSA ha un'architettura piuttosto rigida, quindi nell'ecosistema Linux si è sviluppato il sistema Pulseaudio che funge tra strato intermedio tra ALSA e le applicazioni utente. Pulseaudio espone all'utente "sources" (input) e "sink" (output). JACK era un sistema simile ma con caratteristiche più adatte all'audio professionale. In anni recenti, è cominciata la sostituzione di Pulseaudio con Pipewire, che dovrebbe rimpiazzare anch JACK.
Sia Pulseaudio che Pipewire hanno un mixer software che miscela i flussi audio provenienti da diverse applicazioni.
Ciò che segue è frutto della mia esperienza di qualche anno fa con Pulseaudio. Partendo da una condizione di "silenzio", il primo stream ad essere riprodotto (per esempio un brano musicale o un video da YouTube) determina il formato di uscita (24/96 o 16/48) se la periferica lo supporta. Gli stream riprodotti in contemporanea verranno miscelati sul medesimo e quindi convertiti allo stesso format del primo. Il comportamento è configurabile entro certi limiti, ma non è sempre intuitivo farlo.
Per la riproduzione hi-fi, vorremmo che l'applicazione acceda direttamente alla periferica e avere il controllo totale su risoluzione e samplerate. Questo è possibile se l'applicazione si interfaccia direttamente con ALSA.
In Linux, il player più minimale possibile è 'aplay', un'utility di ALSA che consiste in 3000 linee di codice C. Se volete capire come funziona un player musicale fatevi spiegare aplay da ChatGPT

Per quanto esistano diversi player per il sistema operativo GNU/Linux (magari faremo una rassegna), il loro sviluppo nel corso degli anni è stato un po' caotico e discontinuo. Molti di essi non permettono di configurare l'accesso diretto ad ALSA e per esempio non supportano il DSD, prediligendo la semplicità d'uso alle funzioni "audiophile".
Esistono per converso due piattaforme per la riproduzione musicale basate su architettura client-server:
- Lyrion, precedentemente noto come LMS / Logitech Media Server (o anche Squeezeserver, e probabilmente qualche altro nome che ora mis sfugge)
- MPD (Music Player Daemon).
LMS è nato per l'ecosistema Squeezebox di Logitech ed oggi è supportato dalla comunità opensource. È uno dei prodotti open source più completi con integrazioni per i popolari servizi di streaming. Si controlla primariamente mediante l'interfaccia web integrata.
MPD è un software che fa da server per la riproduzione musicale. Di per sé, fornisce solo l'architettura di base e il controllo delle periferiche audio. Non ha un'interfaccia web integrata ma ci sono diverse interfacce di terze parti. MPD è usato in molti streamer commerciali.
Nei prossimi post ne parleremo un po' più in dettaglio.