note libere

la casa di c-3PO e squeezelite-R2

Tag: Server

C-3PO LMS Plugin e Squeezelite-R2: obiettivi e limiti del progetto

Come già anticipato,  lo scopo di tutto è poter fare decode in PCM e resampling sul server (Logitech media server) e di conseguenza alimentare il player (Squeezelite-R2) con uno stream già nel formato desiderato, così da renderne realmente leggerissimo il carico.

Questo perchè sono personalmente convinto che è quello che sta vicino all’impianto (il player) a dover essere curato maggiormente in modo da evitare ‘inquinamenti’ di qualsiasi sorta, mentre – sempre a mio avviso – ciò che avviene su un server a decine di metri di distanza, in un’altra stanza e possibilmente alimentato su un’altra linea elettrica è sicuramente ordini di grandezza meno influente, ammesso che lo sia in alcun modo.

Applicando la forma del dialogo con un (nemmeno troppo) ipotetico audiofilo, spero di chiarirne le caratterisiche.

L’audiofilo: Ma… non si poteva già fare?

No, LMS non trasmette ai client informazioni attendibili sullo stream quando il formato è PCM (raw, wav o aif che sia). Squeezelite in versione originale, si adegua e di conseguenza non è in grado di riprodurre correttamente stream ricampionati.

Fino a ieri si era costretti a scegliere:

a. Usare Flac o altri formati non PCM.
b. Lasciare il compito del resampling al client.

La modifica a Squeezelite consente proprio di ‘analizzare’ lo stream in ingresso per determinarne – quando possibile – in autonomia il formato e riprodurlo correttamente.

L’audiofilo: Ma non è una novità, Daphile lo fa gia.

Kimmo, mantainer di Daphile, è stato uno dei primi a capire le potenzialità della modifica ed adottarla. Le versioni di Daphile dal 4 di ottobre in poi la integrano.

L’audiofilo: Non lo sapevo, non lo si legge da nessuna parte

Già, è’ così…

L’audiofilo: E C-3PO, il plugin,  a cosa serve?

Per ‘comandare’ il server era fino ad oggi necessario modificare manualmente alcuni files di configurazione, con risultato spesso catastrofici o almeno non certi (spesso ci si illude di aver modificato il comportamento del server, ma non è così).

ll plugin C-3PO in prima battuta realizza un’interfaccia grafica più intuitiva per impostare i parametri necessari per gestire le operazioni di decodifica e ricampionamento sul server, eliminando la necessità di intervenire a livello di file di configurazione.

Oltre a questo, permette di configurare e metter in atto opzioni di ricampionamento in funzione del formato (non solo il ‘tipo’, ma anche la frequenza di campionamento originale, ad esempio) del file o stream in ingresso, cosa prima non possibile sul server.

L’audiofilo: Anche questo Daphile lo fa gia, usa lo stesso plugin?

Al momento non mi risulta che Daphile sia in grado di fare ricampionamento selettivo sul server, lo ha sempre fatto ma solo usando squeezelite. Usa un meccanismo esterno a Logitech media server e proprietario, non C-3PO plugin, che io sappia.

Chiunque può adottare il mio plugin nel rispetto delle regole imposte dalla licenca GNU GPL v2 che regola l’utilizzo, la modifica, integrazione e distribuzione di Logitech Media Server e Squeezelite (open source / free software), non è lo stesso per le componenti proprietarie di Daphile o altri sistemi.

L’audiofilo: Quali formati sono supportati?

Al momento AIF, FLAC e WAV (pcm), il piano è di aggiungere tuttii formati lossless significativi supportati da LMS, nessuna previsione per i formati lossy, ma non sarebbe un problema farlo.

L’audiofilo: Non supporta DSD?

Esiste già un plugin analogo (DSDPlayer) realizzato da Kimmo Taskinen (Daphile) e modificato da Adrian Smith (Triode, squeezelite) che lo fa, ho ritenuto corretto non sovrappormici, dato che possono tranquillamente convivere. Non ci sono incompatibilità o limiti tecnologici, se si evidenzia una necessità, è fattibile senza problemi.

L’audiofilo: Ma, alla fine, perchè dovrei utilizzare C-3PO e Squeezelite-R2?

Sono strumenti open source, multipiattaforma e perfettamente integrati nell’ecosistema squeezebox, il che abilita alla fruizione di tantissime altre funzionalità che altri hanno reso o renderanno via via disponibili secondo la migliore tradizione della squeezebox community, senza scopi di lucro ne intenti commerciali.

Rispeto a soluzioni proprietarie, sono estremamente più indipendenti da me e dalla mia disponibilità futura di tempo per mantenerli

L’audiofilo: Esiste una ISO da scaricare?

No, si tratta d componenti, non di un sistema completo.

Spero e credo ne saranno rese disponibili a breve, al momento esistono delle ottime guide di riferimento e di installazaione cui fare riferimento.

L’audiofilo: Come faccio ad averli?

Sono gratuiti oltre che liberi, la guida all’installazione riporta i link dove recuperare le versioni necessarie. Il codice sorgente, i termini di licenza e le versioni eseguibili per le diverse piattaforme sono in gitHub. C-3PO si installa direttamente da LMS come qualsiasi altro plugin, fare riferimento alla guida per ulteriori informazioni

Upsampling in Squeezebox server

Ho già spiegato che personalmente non sono convinto dell’utilità dell’upsampling, ma circa un anno fa sono stato coinvolto in una serie di discussioni su diversi forum che vertevano sul ‘come’ fare upsampling usando Squeezebox server.

Da queste discusioni e dal parziale fallimento è nata l’idea di realizzare Squeezelite-R2 e C-3PO che presenterò più diffusamente nei prossimi articoli.

In modo nativo, è possibile usare sostanzialmente due metodi per fare decodifica di formato ed upsampling con LMS e Squeezelite:

Il primo praticato fino al rilascio di Squeezelite-R2 anche da Daphile è di farlo fare a Squeezelite, che utilizza al suo interno la libreria libsox0 ed è in grado di impostarne i parametri via riga di comando.

Vantaggi: funziona, minimo utilizzo di banda.

Svantaggi: alto carco di CPU sul client, è in contrasto con l’approccio minimalista.

il secondo è in LMS e prevede l’utilizzo di SOX (applicazione) passandogli gli opportuni parametri mediante files di configurazione (custom-convert.conf)

La rete è piena di guide su come fare ed è ancora possibile vedere quanto da noi allora prodotto, rileggendo la seguente discusione (sconsigliato).

Purtroppo, dopo mesi di fatiche, ci scontrammo con una …caratteristica… di LMS tale per cui non era possibile inviare ai lettori stream oggetto di upsampling e conversione PCM. O l’uno  o l’altro.

In pratica, partendo da files FLAC 44100/16 era necessario prima decodificarli in WAV, quindi farne l’upsample e di nuovo la conversione in FLAC, prima di poterli passare a squeezelite che li riconvertiva in WAV e inoltrava al DAC.

Vantaggi: funziona, carico di rete medio, carico di lavoro del player medio.

Svantaggi: alto carco di lavoro sul server (doppia conversione), utilizzo di banda medio, carco del player medio.

I fautori dell’upsampling comunque, ritenevano già allora di avvertire un miglioramanenti significativo nella seconda configurazione.

A settembre 2015, ho rilasciato Squeezelite-R2 che aggira l’ostacolo mettendosi in condizione di poter ricevere lo stream oggetto di upsampling già in formato PCM, così da limitare il suo compito al minimo assoluto. Viene adottato per primo da Daphile già dalle versioni di ottobre, anche il lavoro del server si semplifica.

A Novebre 2015 vede la luce anche la prima versione di C-3PO, un plugin di LMS il cui principale scopo è ‘liberare’ l’utente dalla necessità di utilizzare complicate impostazioni nei files di configurazione.

Ad oggi lo scopo è raggiunto, non tutto in C-3PO è semplice come potrebbe e dovrebbe essere ma funziona.

Grazie a Squeezelite-R2 ed a C-3PO è certamente possibile usare LMS per fare upsampling e transcoding in altissima qualità, usando un interfaccia web e non più files di configurazione.

Obiettivo raggiunto.

Network Player o Media Centre?

Chiariamo un punto: la distinzione tra Network player e player software basata su un ‘normale PC’ è eminentemente commerciale.

Un Network player è una qualche forma di computer (normalmente poco potente e questo è un bene) che si collega ad una rete tramite una porta Ethernet (cablata o Wifi che sia) ed alimenta un DAC a valle, che può essere integrato  o connesso mediante USB, I2S o SPDIF.

Esattamente la stessa architettura  realizzata con un PC, un MAC, un Rasperry PI,  Cubox o Beagle Bone, anzi, sempre più spesso i più blasonati tra i Network player non sono altro che un assemblaggio in scatola dorata di componenti ‘generici’.

Significa che qualsiasi Media player suona esattamente uguale ad una qualsiasi realizzazione basata su un Raspberry PI o un intel Xeon?

No, assolutamente no, ma la differenza non si origina nella scatola dorata.

Sarà occasione di future discussioni, ma qui lasciatemi comprendere nella categoria dei Network player tutti i dispositivi che ricevono uno stream e con nessuna o poche attività trasferiscono il segnale al DAC.

Anche con queste limitazioni, le componenti in gioco ed i ‘modi’ per farlo sono tantissimi, tanto da giustificare differenze di prestazioni notevoli.

Dall’altra parte, mettiamo le ‘tradizionali’ soluzioni che su un solo PC fanno tutto, comprendendo il lavoro del player (ma normalmente non il dac) e le funzionalità di gestione della libreria, conversione di formato, DSP e controllo, che nell’ipotesi precedente sono demandate a server e controllers.

Lasciamo un attimo a parte le funzioni di controllo, è così evidentemente più comodo usare un tablet o uno smartphone che ormai anche le soluzioni ‘All in one’ sono normalmente aperte a questa possibilità.

Fatta questa doverosa premessa, quando è preferibile un Media Centre rispetto ad un Media player con server remoto?

La risposta è certamente complessa e si basa su convinzioni personali che andrebbero verificate caso per caso, ma in linea generale, valgono le seguenti considerazioni:

a. Il Media centre ha il vantaggio di essere ‘chiuso’ alla rete, quindi niente Wifi  e  niente Ethernet, il segnale digitale attraversa il minor numero di conversioni e trasferimenti possibili.

Di contro, è certamente un ambiente ‘più rumoroso’ – in  tutti i sensi – rispetto ad un media player minimalista, quindi rischia maggiormente di far sentire la sua presenza all’impianto a valle.

b. Il Media player ha il vantaggio di poter essere estremamente ‘leggero’ e quindi silenzioso, è più facile prendere le necessarie misure per isolarlo dal resto dell’impianto in modo efficace e minimizzarne così il ‘rumore’ – in tutti i sensi.

Di contro, richiede necessariamnete una connessione alla rete ed il segnale attraversa diversi apparecchi e protocolli.

Non ho citato la ‘facilità’ di installazione ed uso, perchè esistomo ottimi e pessimi esempi in entrambe le categorie.

Davvero oggi qualcuno rinuncia al Wifi per comandare il mediacentre o alla rete per prelevare i file sul NAS?

L’alternativa qual’è, un Video nelle immediate vicinanze dell’impianto? HDD rumorosi in sala d’ascolto?

Io credo che in relatà nessuno sia più oggi nella condizione di isolamento che, almeno in teoria, costituivano il vantaggio delle soluzioni all in one, ma anche se fosse, non credo che l’utilizzo di protocolli diversi nel percorso del segnale digitale sia deleterio:

Fino al DAC il segnale digitale è composto solo da bit, la sequenza ed il ‘tempo’ nei quali arrivano a destinazione, non sono per nulla importanti, o meglio, non più che per qualsiasi altra applicazione informatica. Che l’insieme di bit trasmesso sia uguale a quello ricevuto è compito e garanzia del’infrastruttura di rete e non capita praticamente mai non sia così, al netto di gravi difetti o errori di configurazione.

Ove sia solo possibile posizionare il server lontano dalla sala d’ascolto , io sono quindi convinto che i vantaggi dell’architettura distribuita, con un player ‘minimalista’,  siano evidenti, Ma anche non lo fossero, non sono in grado di vedere svantaggi reali, quindi ho pochi dubbi: è certamente la strada preferenziale oggi.

Grazie per l’attenzione.

Marco.

Powered by WordPress & Theme by Anders Norén