note libere

la casa di c-3PO e squeezelite-R2

Tag: C-3PO

C-3PO è nell’elenco ufficiale dei plugin di terze parti in LMS

Grazie a chi ha votato C.3PO come plugin ‘preferito’ (…e ad un po’ di pressione…) , da oggi C-3PO è nell’elenco ufficiale dei plugin di terze parti, non è più necessario (se non per usare versioni beta o alfa) indicare il repository manualmente, basta selezionare C-3PO dall’elenco proposto.

Per essere ‘Audiophile’ – e come tale supercontestato – è un buon risultato.

Grazie a tutti.

Per non farsi mancare nulla, eccovi servito il DSD

Era quasi un anno che non succedeva nulla di importante da queste parti, si nel frattempo ho rilasciato diversi miglioramenti a C-3PO, un paio di funzionalità aggiuntive a squeezelite-R2, Falcon è stato portato in altre distribuzioni, ma nulla che valesse la pena ‘etichettare’ come nuova versione.

Bene, pungolato da alcuni amici e con il supporto della solita banda di impallinati, mi sono buttato capofitto in questa nuova avventura con lo scopo di:

a. consentire, mediante C-3PO, la conversione in tempo reale da PCM a DSD in LMS.

b. consentire il playback in formato ‘nativo’ di DSD da squeezelite-R2.

c. rendere Falcon la principale piattaforma di installazione e gestione di squeezelite-R2, rendendolo indipendente da altri tools.

Grazie al grande lavoro di Mans Rullgard su Sox e KImmo Taskinen su Daphile, i primi due obiettivi sono stati raggiunti abbastanza facilmente, anche se rimane ancora impossibile riprodurre DSD nativo su win e mac OSx,  mentre il lavoro su Falcon è stato molto più importante ed è in costante ampliamento, man mano che viene testato per distribuzioni ed OS diversi.

Insomma… possiamo tranquillamente dire di aver rilasciato la versione 2.0 dell’intera suite, casualmente in contemporanea al rilascio della versione stable 7.9.0 di squeezebox server. Un grazie particolare va a Simone che ospita su www.audodigitale.eu le istruzioni per compilare SOX e squeezelite-R2 in diverse piattaforme, oltre che le versioni binarie per i più pigri (come me).

E’ oggi possibile godere dell’upsampling DSD in tempo reale con un sistema aperto, libero e completamente gratuito, qualitativamente almeno alla pari dei più blasonati e costosi  sistemi proprietari.

A tutti, buon divertimento!

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.

Upsampling, ne vale la pena?

In breve,  non lo so.

Quello che però so è che il 99% dei DAC modermi fa upsampling, che è un processo ‘lossy’ non reversibile, che esistono diversi algoritmi per farlo e che se è dubbio porti a benefici è certo che eseguito più volte in cascata degradi rispetto all’applicazione di un filtro unico meglio realizzato.

Tutto questo mi porta a credere che:

sia bene valutare le caratteristiche del proprio DAC prima di fare upsampling esternamente, meglio usare dac NOS nel caso.
sia meglio usare ‘buoni’ algoritmi rispetto ad algoritmi solo ‘mediocri’, quindi la selezione del tool di upsampling e la sua corretta configurazione assume importanza fondamentale.
Ognuno è libero di provare e selezionare i tools che ritiene maggiormente opportuni, ma una volta che li avrà trovati, li deve inserire nella propria catena audio digitale e, visto che parliamo di algortmi che chiedono una discreta capacità elaborativa, non è una buona idea farli fare ad un Pc nelle immediate vicinanze dell’impianto.

Altro punto a favore dell’architettura distribuita.

Da questa considerzione hanno preso il via i progetti più interessanti che conosco, tra cui certamente HQ Player che è considerato una delle migliori soluzioni di upsampling e conversione PCM/DSD, che svolge su un pc ‘server’ remoto rispetto all’impianto, cui si collega con un player minimalista, chiamato Network Audio Player (NAD).

In ambito open source, Logitech media Server e squeezelite hanno le caratteristiche per fare la stessa cosa (la conversione PCM/DSD è ad oggi sperimentale), al netto di un problema che viene risolto da Squeezelite-R2 e C-3PO.

In un prosismo articolo vedremo come farlo.

Powered by WordPress & Theme by Anders Norén