note libere

Squeezebox server, cos’è?

Un minimo di storia:

SBfrontNell’estate del 2001, chi ascoltava musica in mobilità lo faceva ancora con i Walkman della Sony, i più ‘avanti’ avevano il minidisk, alcuni si portavano improbabili ‘compattoni’ sulle spalle, ricordate?

Il 23 ottobre di quell’anno, uno dei marziani che si nascondono tra noi presentò l’iPod e per il mondo dell’audio fu una rivoluzione.

Nei primi mesi dello stesso anno, slim devices, una minuscola azienda sconosciuta, molto più in sordina lancia SLIMP3, un lettore di rete (concetto allora sconosciuto) anche wireless ma da connettere al proprio impianto di casa e comandato dal proprio PC utilizzando un software open source: Slim Server.

Il successo, pur mascherato da quello enorme dell’Ipod, fu immediato, i ‘media centre’ basati su windows o Linux e derivati, risultarono immediatamente ‘vecchi’, nel giro di poco tempo uscì il primo Squeezebox, nome che da allora identifica un ecosistema più che un prodotto.

Grazie alla lungimiranza di slim devices prima e di logitech poi, attorno a Squeezebox si sviluppò rapidamente una comunità di utenti e di sviluppatori formidabile, portata ad esempio anche in letteratura.

Quando, nell’agosto 2012, Logitech annunciò l’abbandono della piattaforma, fu un colpo inaspettato, ma la comunità reagì e sviluppò alternative agli squeezebox ‘veri’, la più famosa delle quali è squeezelite, un leggero programma scritto in C in grado di emulare uno squeezebox, trasformando qualsiasi pc (o altro hw) in un player di rete.

Logitech Media Server è da allora mantenuto in due distinte versioni:
Ufficiale Logitech (7.7.1) che accompagna il parco installato hardware almeno fino al termine delle garanzie di supporto, ma presumibilmente anche oltre.

Comunità ( 7.8.x e 7.9.x) che continua a crescere grazie al continuo supporto e contributo di appassionati, come – nel mio piccolo – tento di fare anch’io.

L’architettura:

ArchitetturaL’architettura di un sistema squeezebox è semplice e ricalca in buona parte i concetti di DLNA/UPNP.

Il cuore pulsante è il server (LMS) che gestisce la libreria musicale, abilita le diverse funzionalità di player (renderer) e controller, compreso l’accesso a servizi di streaming remoto e gestisce la comunicazione.

LMS lo fa garantendo il gapless (cioè il passaggio a tracce contigue senza interruzione, indispensabile per molte registrazioni live e per la classica) e la sincronizzazione multiplayer/multiroom (diversi player in diverse zone possono suonare tracce diverse, ma anche essere sincronizzati tra di loro, così da rendere indolore il passaggio da una zona all’altra).

Può essere installato su una moltitudine di hardware e sistemi operativi diversi, dal normale PC win, linux o mac, plug PC o SOC ARM come il rasperry PI, super server Xeon o NAS domestici, fino anche ad alcuni routers.

Per poter ‘suonare’ il server necessita di uno o più player, che possono essere ‘veri’ squeezebox prodotti da Logitech o emulati da un player software, il più diffuso dei quali è sicuramente squeezelite.

In configurazione ‘normale’ il server è posizionato all’interno della stessa LAN (rete locale, domestica) ma in posizione remota rispetto all’impianto, mentre in prossimità del DAC è posto solo il player.

E’ comunque possibile installare il server ed il player (software) sulla stessa macchina realizzando così un media centre stand alone. Il modo più semplice per farlo è mediante il local player plugin, Daphile – ad esempio – usa un meccanismo analogo ma proprietario.

Per poter navigare la libreria, configurare server e player o accedere a servizi remoti, è necessaria la presenza di almeno un controller. Il primo e più naturale è costituito dall’’interfaccia WEB del server, accessibile mediante un qualsiasi browser all’interno della stessa rete locale, ma esistono applicazioni per Android ed iOS eccellenti, oltre (ma sono modalità obsolete) ad uno specifico controller Logitech ed ad un suo ‘clone’ per PC. E’ possibile utilizzare anche alcuni modelli di telecomando IR.

Un controller è sempre logicamente connesso ad un player e – mediante questo – ad un server.

Un controller può anche essere ‘passivo’ cioè limitarsi a visualizzare (es, un tablet o una cornice elettronica) le informazioni in merito alla traccia in esecuzione (o altre) inviate dal server.

Possono essere attivi contemporaneamente più controller per lo stesso player (e quindi server).

Architettura2

A fianco l’esempio di installazione relativo una soluzione commerciale che incorpora Logitech Media Server, dove “lecteur Musical SOtM sMS-100” è un sistema basato su Linux ospitante Squeezelite.

I plugin.
LMS fa tante cose, ma non tutto, anzi di suo è ‘minimale’ e non tutto quello che fa lo fa al meglio, se visto da un punto di vista ‘audiofilo’.

I progettisti hanno però intelligentemente adottato un metodo di sviluppo che consente a terzi di aggiungere/sostituire funzionalità al sistema, mediante plugin.

Esistono plugin per le più disparate funzionalità: dall’accesso a servizi di streaming (Qobuz, Tidal, Deezer, LastFm, Spotify,…) alla gestione della libreria (librerie virtuali, utilizzo di tag non previsti nello standard,import ed export di dati), ma anche ‘futili’ come il display del risultato delle partite della lega giovanile di baseball.

Un elenco esaustivo è praticamente impossibile, ma questo è probabilmente l’elemento più importante e qualificante di squeezebox server, dato che consente di adattarlo alle nostre esigenze senza doverlo necessariamente riscrivere.

Perchè sceglierlo.

Esistono migliaia di alternative, ma se si vuole una soluzione multipiattaforma (cioè installabile sui maggiori sistemi operativi), open source e distribuita, la scelte si restringe molto.

La nativa compatibilità con i principali formati (compreso i cue files) e la struttura a plug in grado di aumentarne ancora le potenzialità, ne fanno ancora oggi – a mio avviso – una scelta valida.

La possiilità di utilizzare players software come squeezelite, ma anche di scriverne di completamente nuovi, consente l’utilizzo di Squeezebox come backbone di comunicazione sulla quale installare le proprie funzionalità di gestione della libreria, decodifica e trattamento del segnale (DSP/DRC) in modi che chi ha progettato LMS non ha nemmeno ipotizzato.

Ha anche limiti, il primo dei quali – a mio giudizio –  è di essere scritto in Perl, ma per  robustezza, prestazioni e funzionalità è a mio avviso ancora oggi una delle soluzioni migliori, basta capire il ruolo giocato delle diverse componenti ed accettare il fatto che – da standard – fornisce funzionalità minimali, che vanno integrate con tool terzi se si hanno esigenze specifiche. A differenza di altre soluzioni, qui è possibile  farlo con poco sforzo e quì risiede l’enorme vantaggio.

Senza preteso di avervi spiegato cosa fa Squeezebox server (servirebbe un libro) spero di avervi chiarito un minimo le fondamenta di una architettura distribuita ed i vantaggi che presenta.

Torneremo certamente sull’argomento con specifici approfondimenti.

Grazie per l’attenzione.

Marco.

Lascio un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *