Software per la musica liquida: Linux, MPD e LMS

Tutto quello che riguarda la riproduzione della musica liquida...
Rispondi
Messaggio
Autore
Interference
Messaggi: 767
Iscritto il: 24/04/2019, 17:28

Software per la musica liquida: Linux, MPD e LMS

#1 Messaggio da Interference »

Nel sistema operativo GNU/Linux (comunemente Linux) le periferiche audio sono gestite dal sottosistema ALSA (Advanced Linux Sound Architecture).

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.
Interference
Messaggi: 767
Iscritto il: 24/04/2019, 17:28

Re: Software per la musica liquida: Linux, MPD e LMS

#2 Messaggio da Interference »

LMS o Logitech Media Server, oggi Lyrion Music Server (in origine Slimserver, poi Squeezeserver, e forse altri nomi) è un sistema sviluppato da Slimdevices (poi acquisita da Logitech) per effettuare lo streaming di musica da un server centrale a uno o più player connessi in rete. La prima versione risale al 2000-2001 (date da verificare).

LMS è free open source software ed è scritto in Perl, linguaggio da sempre considerato per "programmatori esperti".

LMS conta ad oggi moltissimi plugin e una comunità molto attiva. Supporta i principali servizi di streaming, anche se alcuni di questi sono un po' ostili alla comunità open source (vedi Qobuz).

Daphile, una nota distribuzione Linux "chiavi in mano" per la musica, è basata su LMS (a cui aggiunge diverse funzionalità proprietarie).

Slimdevices (poi Logitech) commercializzava una serie di player hardware chiamati Squeezebox, che potevano essere controllati dal server. Gli Squeezebox divennero famosi anche perché era possibile con qualche modifica estrarne il segnale I2S per andare direttamente ad un DAC. Ricordavo uno Squeezebox con uscita I2S prevista dal costruttore ma forse me lo sono immaginato.

Immagine

Ad un certo punto fu creato il software squeezelite. Squeezelite è un leggero software per Linux che emula uno Squeezebox e si interfaccia con una periferica audio locale. In altre parole permette di usare qualsiasi computer Linux come un player per un server LMS.

Per la verità i requisiti hardware per fungere da player sono estremamente minimali, al punto che persino un microcontrollore come l'ESP32 è in grado di farlo: https://github.com/sle118/squeezelite-esp32

Lo sviluppatore italiano Marco Curti ha creato un plugin per LMS (C3PO) che permette di effettuare la conversione di samplerate (e altre operazioni DSP) lato server, e una variante di squeezelite (R2) in grado di riprodurre i flussi così creati. Mi risulta che ad oggi queste modifiche siano state integrate nell'applicazione principale.

LMS da solo non suona, serve sempre LMS e almeno un'istanza di squeezelite. Le due possono stare sulla stessa macchina o su macchine diverse. Se per LMS esiste un'interfaccia web, squeezelite deve essere gestito per conto suo. Per questo esistono alcune distribuzioni Linux che semplificano la gestione di un sistema LMS con squeezelite:
- Daphile (x86)
- PiCorePlayer (Raspberry Pi)

Daphile integra molto software proprietario del suo creatore ed è un prodotto a se, pur essendo basato su LMS. PiCorePlayer è open source. Ad oggi, non esiste un sistema "chiavi in mano" per x86 (Intel/AMD) che sia anche open source.
Avatar utente
Tropico
Messaggi: 63
Iscritto il: 23/05/2021, 18:16

Re: Software per la musica liquida: Linux, MPD e LMS

#3 Messaggio da Tropico »

ALSA può essere considerato l'equivalente di ASIO per Windows, lo uso con DeadBeef su Mint, ma onestamente non noto migliorie con ALSA rispetto a Pipewire...
Per lo streaming invece... non ho conoscenza in merito :roll:
Non dovremmo lasciare che i numeri definiscano la qualità audio più di quanto lasceremmo che l'analisi chimica sia l'arbitro dei vini pregiati. Nelson Pass
Interference
Messaggi: 767
Iscritto il: 24/04/2019, 17:28

Re: Software per la musica liquida: Linux, MPD e LMS

#4 Messaggio da Interference »

Tropico ha scritto: 04/12/2024, 20:21 ALSA può essere considerato l'equivalente di ASIO per Windows, lo uso con DeadBeef su Mint, ma onestamente non noto migliorie con ALSA rispetto a Pipewire...
Per lo streaming invece... non ho conoscenza in merito :roll:
Sì. All'atto pratico è un'architettura che da sempre permette l'accesso diretto alle periferiche e gli altri sistemi ci poggiano sopra. A differenza di Windows dove ASIO bypassa il sistema audio principale.

Se non ci sono più sorgenti audio in contemporanea, Pipewire dovrebbe preservare il flusso audio "intonso", a meno di non modificare il volume digitale. Diciamo che accedere direttamente ad ALSA toglie il pensiero.

All'epoca dei miei primissimi esperimenti con Linux ricordo che il sistema OSS, predecessore di ALSA, esponeva la scheda audio tramite un file /dev/dsp e si poteva far "suonare" scrivendoci sopra. In Unix si usa dire "everything is a file" :D
Interference
Messaggi: 767
Iscritto il: 24/04/2019, 17:28

Re: Software per la musica liquida: Linux, MPD e LMS

#5 Messaggio da Interference »

MPD sta per Music Player Daemon.

In ambito Unix, la parola "daemon" (demone) ha origini antiche e indica un programma che lavora in background e spesso funge da server.

MPD è un "player daemon" quindi è un server che gestisce direttamente la periferica audio. Non ha interfaccia in senso proprio, ma espone una API, cioè un canale di comunicazione con cui è possibile controllare il server.

L'utente interagisce con MPD esclusivamente tramite software "client" che fungono da interfaccia grafica (eventualmente web) o testuale per le funzionalità di MPD.

MPD è una scelta popolare per diversi streamer commerciali, perché fornisce una solida base su cui costruire un'interfaccia (client) che può essere personalizzata dal costruttore.

Esistono diversi client per MPD, ma non so dire se ce ne siano di plug and play. In genere, MPD è offerto all'interno di distribuzioni dedicate. L'integrazione con i servizi di streaming dipende dalla distribuzione.

Distribuzioni basate su MPD
- Volumio è il più celebre software player basato su MPD. È rilasciato come distribuzione Linux dedicata per x86 (Intel/AMD) e Raspberry Pi. La base di Volumio è open source come le sue origini, ma oggi alcune funzionalità sono offerte a pagamento, in particolare quelle relative ai servizi di streaming. Volumio commercializza anche uno streamer e un amplificatore integrato con funzionalità di streaming.

- Moodeaudio è il più avanzato progetto totalmente free e open source basato su MPD. È disponibile solo per Raspberry Pi. Integra un moderno motore DSP (CamillaDSP). Supporta Spotify Connect ma non Qobuz.

Sistemi commerciali basati su MPD
Diversi costruttori anche di fascia alta hanno usato MPD nei loro prodotti. Tra essi Bryston, Chord, Aurender, Totaldac, SOtM.

Alcuni operatori non hanno rispettato la licenza di MPD che è GPL (copyleft): il programma si può riutilizzare ma a patto di redistribuire i codici sorgenti, inclusi quelli delle modifiche o patch eventualmente apportate. Spesso i costruttori non rispettano i termini, o lo fanno in modo discutibile cercando di aggirare i propri obblighi.

Una lista si trova al seguente link: https://www.musicpd.org/commercial.html
Interference
Messaggi: 767
Iscritto il: 24/04/2019, 17:28

Re: Software per la musica liquida: Linux, MPD e LMS

#6 Messaggio da Interference »

In sintesi:

Codice: Seleziona tutto

| Prodotto     | Base | Licenza          | Piattaforme  |
|--------------|------|------------------|--------------|
| Moode        | MPD  | FOSS             | Raspberry Pi |
| PiCorePlayer | LMS  | FOSS             | RPi          |
| Daphile      | LMS  | FOSS + freeware  | x86          |
| Volumio      | MPD  | FOSS + shareware | x86, RPi     |

Soluzioni completamente free / open source sono disponibili solo per Raspberry Pi.

Daphile è la soluzione più comune per PC ma ha componenti proprietarie.

La mia soluzione preferita è usare un PC con LMS (non Daphile) come server e un Rasbperry Pi come player/renderer con PiCorePlayer.
Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti