note libere

Squeezelite-R2

Breve guida a Squeezelite-R2 v1.8.4-(R2)

Architettura3Ruolo nell’architettura.
In una tipica architettura Squeezebox sono presenti almeno un server, un player ed un controller, connessi tramite un router via cavo o WiFi.
Squeezelite-R2 è il software che anima il player.
Per saperne di più, consiglio la lettura della guida introduttiva a Logitech Media Server (v. Riferimenti).

Descrizione:

Squeezelite [(c) Adrian Smith 2012-2015, triode1@btinternet.com]
è un software molto leggero, scritto in C, che emula uno squeezebox.

La versione v1.8.x-(R2) abbreviata in R2, incorpora una modifica che lo rende capace di accettare e riconoscere in ingresso flussi di dati anche in formato pcm o DSD ‘nativo’ ricampionati sul server.

Questo consente di liberare il player – posizionato in prossimità dell’impianto – dai compiti di conversione di formato e ricampionamento, il che comporta una riduzione del carico di lavoro (e quindi dei requisiti hardware) nell’ordine del 95%, consentendo l’uso efficace di soluzioni minimaliste.

Prerequisiti

Richiede Logitech Media Server per funzionare, consiglio la versione 7.9, che può essere scaricata qui selezionando la versione corrispondente al proprio sistema operativo

Qualsiasi metodo di decodifica e/o ricampionamento applicato sul server è accettato da Squeezelite-R2.

Per un funzionamento più semplice e per sfruttarne al pieno le funzionalità consiglio l’installazione sul server del plugin C-3PO, disponibile qui:

Squeezelite-R2 mantiene piena compatibilità con Squeezelite e può sostituirsi ad esso senza limitazione alcuna.

Squeezelite-R2 è disponibile qui sia come sorgente che come codice binario per Windows, Mac OS X e Linux (Debian 32 e 64 bit).

Versioni binarie per altre piattaforme sono disponibili qui: www.audiodigitale.eu

Istruzioni di compilazione per le diverse piattaforme sono incluse nel codice sorgente, o sempre su www.audiodigitale.eu

La presente guida presuppone la conoscenza dei principi generali di Logitech Media Server, in alternativa consiglio la lettura della guida introduttiva a Logitech Media Server.

Per un efficace utilizzo di C-3PO consiglio la lettura della guida a C-3PO.

Installazione

Come binario Squeezelite-R2 non richiede installazione, basta scaricare la versione corrispondente al proprio sistema operativo (v. sopra).

Per i sistemi operativi per cui è disponibile, il metodo più semplice ed efficace per installare squeezelite-R2, gestirne i parametri e e veriicarne lo stato di esecuzione è Falcon web interface.. In alternativa, fare riferimento alle convenzioni del proprio sistema operativo per decidere dove posizionare i files, non ha importanza ai fini del funzionamento.[*]

Esiste la possibilità di automatizzare la partenza e l’arresto di squeezelite-R2 all’accensione (anche senza login) e spegnimento del sistema, mediante opportuni script analoghi a quelli utilizzati da falcon web interface, in funzione del sistema operativo ospite.

Nel forum di progetto, sezione guide (v. Riferimenti) sono disponibili guide e script di installazione automatici verificati per diversi sistemi operativi basati su Linux e non solo.

Altre se ne trovano in rete, ma non avendole verificate non ne posto i link.

Falcon Web interface automatizza questi passaggi, in alternativa bisogna considerare che  Squeezelite-R2 fa uso di diverse librerie di terze parti, in windows vengono distribuite nella stessa cartella, in Linux no. Nella maggior parte dei sistemi sono già installate, qualora non fosse così occorre scaricarle con l’opportuno gestore pacchetti.

In debian:

apt-get install libreria

dove libreria è da sostituire di volta in volta con quelle necessarie, che sono:

libasound2, libavcodec56, libavcodec-extra-56, libavformat56, libavutil54, libc6, libfaad2, libflac8, libmad0, libmpg123-0, libsoxr0, libvorbisfile3, liblircclient0.

 

Nota: Sul forum di progetto è’ disponibile  uno script di installazione che automatizza questi passaggi in modo esattamente corrispondente a Falcon web interface, ma senza attivare il web server, per chi persegue lo stretto minimalismo.

In alcuni sistemi Linux non basati su debian può risultare necessario compilare Squeezelite-R2 da sorgente, riferirsi alle istruzioni del proprio sistema operativo.  Le istruzioni disponibili sono comprese nel repository in gitHub (v. links).

Impostazioni di utilizzo

Squeezelite-R2 è comandato esclusivamente mediante opzioni attivate al momento del lancio in esecuzione,  per i sistemi operativi per cui è disponibile, il metodo più semplice ed assolutamente consigliato ed efficace  è mediante Falcon web interface, che elimina tutta la complessità descritta in seguito ed abilita ulteriori comode funzionalità di verifica  e gestione del player.

In alternativa, le opzioni disponibili cambiano in ragione delle opzioni attivate in fase di compilazione e/o della piattaforma di utilizzo, per una descrizione complete delle opzioni disponibili fare riferimento alla home ufficiale di squeezelite (v. riferimenti).

Lanciando squeezelite-R2 con la sola opzione -?

Squeezelite-R2 -?

Se ne ottiene elenco.

Esistono moltissime guide più o meno approfondite e più o meno accurate in rete. Non avendole verificate non ne posto i link.

Quanto indispensabile ai nostri scopi è descritto nel presente documento o nel forum di progetto, sezione guide (v. Riferimenti).

Nota: Consiglio  di proseguire nella lettura per meglio comprendere i diversi concetti e criteri di funzionamento di Squeezelite-R2, ma  ricordo che Falcon web interface permette la gestione semplificata di tutti questi parametri mediante una più intuitiva interfaccia grafica.

Opzioni di base

-s <server>[:<port>] connette SOLO e direttamente il server:porta indicato, altrimenti usa un meccanismo di autodiscovery. Non valorizzare se non in situazioni con diversi server nella stessa rete.

-o <output device> permette di selezionare la “scheda audio” alla quale inviare l’output. Se non specificata usa quella standard del sistema operativo ospite. Per ottenere un elenco di schede audio disponibili, utilizzare l’opzione –l (*)

-l <list output device> lanciando Squeezelite con SOLO quest’opzione, si ottiene l’elenco delle schede audio disponibili, tra le quali selezionare quella da utilizzare con l’opzione –o. (*)

-a <b>:<p>:<f>:<m> Parametri ALSA (ove significativi) , b = buffer time in ms or size in bytes, p = period count or size in bytes, f sample format (16|24|24_3|32), m = use mmap (0|1).

Inizialmente consiglio di lasciare I valori di default.(**)

-b <stream>:<output> Dimensioni dei buffer APPLICATIVI interni ed in output a squeeelite.

Inizialmente consiglio di lasciare I valori di default, possono essere aumentati in ragione del sample rate effettivamente utilizzato (***)

-d <log>=<level> ‘profondità’ del log e tipo di eventi registrati. Inizialmente impostare all=debug.

-f <logfile> pathname (nome comprensivo dell’intero percorso) del file di log. Utilizzare gli standard del proprio sistema operativo.

-n <name> identificativo mnemonico del lettore. Usare nomi di fantasia, tipo Squeezelite-R2@pc-windows-studio o Squeezelite-R2@macbook-air o “music box”.

-r <rates>[:<delay>] Permette di specificare i samplerates ammessi per il player.

NOTA BENE: Squeezelite-R2 è in grado di individuare questa informazione, ma solo se la scheda audio è attiva al momento della partenza di Squeezelite, quindi in pratica NON se si usano script automatici all’accensione del sistema.

In questo caso, è necessario specificare un insieme di samplerates nella forma: <maxrate> o <minrate>-<maxrate> o <rate1>,<rate2>,<rate3>;
Es. 192000 o 44100-192000 o 44100, 88200, 174600.

L’elenco non è esaustivo.

Una semplice riga di comando per lanciare squeezelite-R2 DOPO che il sistema è stato avviato normalmente è:

Squeezelite-R2 –n Squeezelite-R2 –d all=debug -f ” squeezelite-R2.log”

Ovviamente è possibile, spesso preferibile ed a volte necessario usare opzioni più avanzate,  Falcon web interface presenta e descrive dettagliatamente tutte le opzioni disponibili, alcune delle quali vengono discusse in dettaglio in articoli dedicati del sito. Possono essere ricercati mediante la parola chiave squeezelite-R2.

NOTE.

 

(*) Il comando

Squeezelite-R2 –l

Produce l’elenco delle schede audio presenti sul pc, se quella desiderata è già quella di default, non è indispensabile indicare l’opzione -o, altrimenti occorre aggiungerla alla riga di comando.

Es.

Squeezelite-R2 –n Squeezelite-R2 –d all=debug -f “squeezelite-R2.log” -o front:CARD=X20,DEV=0

(**) Se non si attiva questa opzione, il sistema (se ALSA) utilizza i valori di default, equivalenti a: -a 100:4:32:1 adeguati nella maggior parte dei casi.

Period count più bassi fanno lavorare di più la CPU, su sistemi moderni e macchine efficienti il rapporto ottimale tra dimensione del buffer e minimo valore di buffer raggiunto a causa del period count è 1:2.

Quindi, per materiale stereo a 44100 Hz/16 bit il corretto dimensionamento sarebbe 135:3 o 93:2 o 47:1. Cambiando il formato in ingresso cambiano i rapporti.

Usare con cautela.

(***) Se non si attiva questa opzione, il sistema utilizza i valori di default, equivalenti a: -b 3072:4096.

La differenza tra ingresso ed uscita ha un senso solo se in ingresso abbiamo un formato compresso, altrimenti, par avere la stessa ‘durata’ del buffer andrebbero mantenuti uguali: -b 4096:4096.

Se si fa upsampling sul player però, la dimensione del buffer in uscita aumenta in proporzione al bitrate, in un rapporto che tra 44100/16 e 176400/32, ad esempio,  è pari a 8.
In questo caso, per mantenere buffer di uguale durata, i valori corretti sarebbero: -b 4096:32768.

Facendo upsampling e decode sul server tornano ad essere uguali, ma pari a: -b 32768:32768

Possono essere aumentati a piacere, avendo l’accortezza di non costringere il sistema a ‘paginare’. Quelli indicati sono valori di tutta sicurezza e possono essere aumentati anche significativamente, disponendo di almeno 1 GB di RAM.

Riferimenti utili:

Forum di progetto .
Home di squeezelite
Download di fakcon web interface

Questa guida è in evoluzione, riferimenti ad altri documenti verranno aggiunti a breve.

RINGRAZIAMENTI

Ringrazio:

nexthardware.com (http://www.nexthardware.com) per l’ospitalità fornita a tutte le fasi del progetto.

audiofaidate.org (http://www.audiofaidate.org/forum/) per l’hosting degli script di installazione.

Giovanni, Paolo, Filippo, Giorgio, Simone e tutti gli amici che hanno contribuito con il loro lavoro e la loro pazienza alla realizzazione di questo progetto.

Auguro a chiunque intenda utilizzare C-3PO e Squeezelite-R2 la massima soddisfazione.

Buon divertimento

Marco.

Copyrigth:

Marco Curti 2015 -2017  <marcoc1712 at gmail dot com>

Basato su Squeezelite: Adrian Smith 2012-2015, triode1@btinternet.com

Il presente materiale è liberamente copiabile, modificabile e distribuibile in conformità con i termini di licenza GNU GPL v. 2.

E’ richiesto il mantenimento integrale della sezione “Ringraziamenti” e “Copyrigth”.

L’autore mette a disposizione le presenti informazioni in buona fede e nella speranza risultino utili, ma declina ogni responsabilità per danni di qualsiasi natura, compreso il mancato ricavo, derivanti dal loro utilizzo.

Sottoporre a verifica prima dell’uso e procedere a proprio rischio.