Foobar2000: i resampler

Il canale YouTube ha assorbito più energie di quanto immaginassi ma penso sia anche perché, finalmente, ho avuto una buona scusa per riprendere i mano reflex, treppiedi e attrezzatura varia rimasta abbandonata nell’armadio in questi mesi di domiciliari causa Covid.

Ci eravamo lasciati parlando di supporti analogici da un lato, in ottica di parlare in modo approfondito dei cavi per l’impianto, e di cosa sono i resampler e, soprattutto, a cosa servono dall’altro.

Oggi riprenderò proprio questo secondo argomento, i resampler, e lo contestualizzerò in Foobar2000.

Partiamo da una piccola precisazione: Foobar2000 supporta pressoché infiniti componenti adibiti al resampling cui si può accedere direttamente dalla pagina dedicata ai plugin dal sito di Foobar2000 stesso.

Personalmente ho sperimentato solamente alcuni di quelli presenti nell’elenco. Nello specifico:

  • SRC, o Secret Rabbit Code: uno dei più potenti resampler disponibili in termini di qualità ottenibile ma tendenzialmente pesante se non configurato correttamente. Altra pecca: lavora “a numeri interi” e quindi digerisce male i sovracampionamenti non interi.
  • dBpoweramp/SSRC: poco esigente in termini di risorse. Si tratta più che altro di un comodo “downsampler” qualora doveste utilizzare DAC che non supportano frequenze di campionamento elevate. Reputo comunque migliore SRC anche in questa tipologia di utilizzo anche se più esigente. Anche questo resampler è basato sulle librerie di Secret Rabbit Code.
  • PPHS: ottimo resampler per sovracampionamenti interi. Abilitando la modalità “Ultra Mode“, che ne migliora le performance in caso di conversioni da 44.1 kHz a 48 kHz, diventa davvero troppo esigente in termini di risorse di sistema offrendo risultati comunque analoghi a quelli riscontrabili con SRC.
  • SoX: al pari di SRC, leggermente meno impattante in termini di risorse di sistema ma lavora in virgola mobile per cui si trova decisamente a suo agio nella gestione di sovracampionamenti non interi.

Come potete ben vedere ogni componente che ho provato ha dei pro e dei contro. Alcuni lavorano davvero bene con determinate configurazioni ma meno con altre. Alcuni cambiano drasticamente l’impatto sulle risorse impegnate al variare della frequenza di lavoro/target.
Pensare di cambiare il resampler ogni volta che cambia la frequenza di lavoro è impensabile e la soluzione dei resampler multipli attivi, con funzionamento selettivo, è attuabile ma decisamente scomoda.

Ricordo che la mia idea è quella di avere un PC che fa tutto da solo, comandato dal tablet senza bisogno di modificare alcunché in termini di impostazioni e preferenze di riproduzione.

Dopo un po’ di peripezie ho finalmente trovato il componente adatto alle mie esigenze: Resampler-V.

Di fatto si tratta di un componente che unisce i vantaggi di SRC e SoX e permette di gestire i due algoritmi in modo indipendente a seconda delle proprie preferenze e delle varie frequenze di lavoro.

In sostanza permette di scegliere:

  • Quale dei due algoritmi utilizzare in base combinazioni di frequenza di lavoro e frequenza di target
  • La tipologia di risposta di fase che si vuole applicare al filtro passa basso
  • La banda passante, ovvero la frequenza di taglio del filtro stesso
  • La pendenza del filtro, ovvero l’entità della banda di taglio
  • L’attenuazione della banda fermata, ovvero quanto il filtro dovrà attenuare le frequenze superiori a quella di taglio.

Di fatto possiamo agire su tutti i parametri dell’algoritmo e andare a personalizzare, praticamente all’infinito, la risposta dello stesso.

Di tratta di operazioni molto semplici, a livelli di intervento lato utente, ma che possono modificare anche radicalmente il suono emesso dal nostro sistema.

Modificando la risposta di fase, ad esempio, gestiremo i cosiddetti “ringing” in caso di segnali impulsivi e la decadenza degli stessi. Possiamo avere un comportamento più secco, e risuonante, piuttosto che un comportamento più morbido ma con qualche coda.

Intervenendo su banda passante/di taglio/fermata possiamo andare a modificare, invece, l’eventuale roll-off desiderato piuttosto che la nettezza dell’intervento del filtro.

Ogni modifica dell’output derivante da queste impostazioni viene rappresentato, live, su due grafici visibili a schermo:

  • il primo, che rappresenta la risposta nel dominio della frequenza del filtro, restituisce le informazioni circa attenuazioni di banda e entità della pendenza di taglio del filtro così come le eventuali spurie presenti a frequenze maggiori.
  • il secondo, invece, rappresenta la risposta nel dominio del tempo e quindi gli effetti a segnali impulsivi.

Si tratta di un componente un po’ complicato, forse, ma decisamente potente e versatile che mi sento di consigliare a tutti quanti.

Foobar2000 – Step 3: Configuriamo il Sistema

Piccolo riassunto delle puntate precedenti:

A questo punto dovremmo avere tra le mani un PC Windows 10 Pro pulito, impostato per poter essere posizionato a piacere anche nel rack dell’impianto, e davvero pronto ad essere reso operativo come Sistema di riproduzione musicale.

Iniziamo:

La prima cosa da fare, strano a dirsi, è quella di verificare i collegamenti e accendere, almeno inizialmente, DAC e PC.

Effettuiamo il login alla macchina e, dal nostro fidato pannello di impostazione, accediamo alla scheda relativa al “Sistema” e da qui andiamo alla scheda “Audio”.
Grazie al fatto che, finalmente, Windows 10 supporta nativamente il protocollo USB Audio Class 2, non dovrebbe essere necessario installare alcun driver e dovremmo vedere visualizzato il nostro DAC come periferica audio attualmente attiva.
ATTENZIONE: lo standard USB AC2 supporta nativamente segnali fino a un massimo di 24 bit / 192 kHz. In realtà lavora anche a 32 bit ma la combinazione 32 bit / 192 kHz non è universamente riconosciuta come standard.

Se così non fosse sarà necessario reperire i driver dal sito del produttore, installarli e fare in modo che il sistema riconosca il nostro DAC come dispositivo di output.

Una volta fatto ciò apriamo il menù di configurazione cliccando la voce “Proprietà dispositivo“. Da qui potremo fare diverse cose, tra cui cambiare il nome che il sistema assegnerà alla periferica (cosa utile nel caso in cui abbiate più DAC USB connessi), ma a noi adesso interessa accedere alle “Proprietà aggiuntive dispositivo” accessibili dal menù a DX.
Una volta aperta tale menù selezioniamo la scheda “Formati supportati” e andiamo ad agire come segue:

  • Dalla sezione “Formati codificati” possiamo selezionare i bitstream che potremo inviare direttamente al DAC senza alcun tipo di conversione in PCM e far lavorare il decoder interno al DAC stesso. Se non sapete se il vostro DAC è in grado di fare qualche tipo di decodifica in modo nativo la cosa più semplice è selezionare una codifica alla volta e premere il tasto “Prova”.
    Molto probabilmente il dispositivo non sarà in grado di effettuare la decodifica in modo nativo, la prova fallirà e la voce verrà disabilitata in automatico.
  • Dalla sezione “Frequenza di campionamento” possiamo selezionare le varie frequenza di campionamento, appunto, e testare l’effettiva capacità di riproduzione del DAC. Il mio consiglio è di verificare, indipendentemente dai dati di targa dichiarati dal costruttore, che il nostro DAC (o meglio il ricevitore USB integrato) sia in grado di operare a tutte le frequenze previste.
    Ci sono dispositivi che lavorano tranquillamente a 192 kHz ma non riescono ad agganciare segnali a 176,4 kHz.

Passiamo ora alla scheda “Avanzate” e prepariamoci a sentire un bel po’ di suoni: partendo dalla qualità inferiore proviamo tutte le voci così da capire qual’è il vero limite di decodifica del nostro DAC. Il mio RC-1570, ad esempio, riproduce tranquillamente anche segnali con profondità di campionamento 32 bit fino a 192 kHz. Vezzo inutile ma differente dal dichiarato (anche perché il Wolfson WM8740 montato non lavora comunque a 32 bit). Indipendentemente da ciò selezioniamo come “Formato predefinito” la massima combinazione di profondità di bit e frequenza di campionamento dichiarata dal costruttore (o la massima riproducibile qualora differente).
Sempre dalla stessa scheda attiviamo entrambe le voci riportate nella sezione “Modalità esclusiva“.

A questo punto abbiamo, finalmente, un PC in grado di comunicare con il nostro DAC e pronto ad essere reso operativo al nostro scopo.

I passi successivi NON sono necessari SOLO per chi intende configurare un PC totalmente “remotato” come il sottoscritto.
Vi consiglio di leggere fino in fondo perché potreste trovare spunti utili anche al vostro caso.

Ricordate quanto detto all’inizio della configurazione di Windows?
Siamo loggati nel PC, anche da remoto, con un utente con privilegi di amministratore.
Cosa non buona in ottica di avere un sistema che, per alcuni di noi, sarà acceso 24/7 e collegato alla rete domestica. Per cui come prima cosa andiamo a creare un utente “base”, che quindi non ha alcun privilegio sulla macchina (e potenzialmente sul resto della rete) da utilizzare d’ora in avanti come “utente unico” sul sistema.

Per fare ciò, stranamente, bisogna partire dal nostro amico ingranaggio. I passaggi da fare sono i seguenti:

  • Selezioniamo la voce “Account
  • Andiamo alla scheda “Famiglia e altri utenti” dal menù di SX
  • Alla voce “Altri utenti” facciamo click su “Aggiungi un altro utente a questo PC
  • Opzionale: selezioniamo “Non ho le informazioni di accesso di questa persona” e successivamente “Aggiungi un utente senza account Microsoft”
  • Assegnamo un nome ed una password al nostro “utente unico” – banalmente io uso “Foobar2000” come nome utente. La password è indispensabile in ottica di accesso remoto al sistema.

Una volta terminata la procedura dovrebbe comparirci l’account appena creato identificato come “Account locale“.

Se siete collegati in remoto al PC e tentate di accedere utilizzando tale utenza non riuscirete nell’operazione perché, come detto, bisogna abilitare gli utenti non amministratori all’accesso remoto.
Per fare ciò torniamo al menù relativo al “Desktop remoto” e aggiungere l’account all’elenco degli abilitati tramite la voce “Seleziona gli utenti che possono accedere da remoto a questo PC“.

  • Clicchiamo “Aggiungi
  • Digitiamo il nome dell’utente appena creato
  • Clicchiamo il tasto “Controlla nomi” – l’operazione dovrebbe riconoscere l’utente locale e completare le informazioni mancanti restituendo la voce “NOMEPC\Utente
  • Facciamo click su OK per confermare l’operazione

Disconnettiamoci dal sistema e riconnettiamoci utilizzando l’utente appena creato.

Se tutto va a buon fine iniziamo a vedere la luce in fondo al tunnel.
Ma non è ancora finita…

Il problema di base è uno solo: se spegnete il PC e poi lo riaccendete questo resta sulla schermata di login e, di conseguenza, non è in grado di eseguire alcuna applicazione fino a quando un utente non si connette alla macchina.
Il nostro obiettivo, però, è quello di fare in modo che il computer si avvii e sia pronto alla riproduzione senza nessun intervento esterno sul fronte del sistema operativo.
Noi vogliamo solamente avviare un App sul telefono/tablet e fare in modo di controllare Foobar2000, e la riproduzione da lì… Per cui ci serve che il sistema si avvii e che, soprattutto, login e avvio di Foobar2000 siano automatizzati.

Andiamo con ordine e facciamo tutto quanto.

Accediamo da remoto alla macchina ed occupiamoci, anzitutto, di rendere il login della nostra utenza base automatico.

Per fare ciò premiamo “Win+R“, o clicchiamo su Start, e digitiamo “netplwiz“. Se siamo loggati con un profilo “base” il sistema ci chiederà di inserire le credenziali di un account amministratore per procedere, facciamolo e dovrebbe aprirsi un pannello di configurazione chiamato “Account utente” che riporta, al centro, l’elenco degli utenti registrati a sistema. A noi, però, interessa la spunta alla voce “Per utilizzare questo computer è necessario che l’utente immetta il nome e la password“.
Togliamo la spunta e clicchiamo su “Applica“.
Comparirà una finestra di dialogo in cui viene chiesto di indicare l’utente per cui intendiamo rendere automatico il login. Non dobbiamo fare altro che compilare i campi con i dati dell’utente da noi creato allo scopo di riprodurre musica.
Clicchiamo OK due volte e il gioco è fatto.

Se adesso riavviate il sistema il PC farà tutto da solo e il login al nostro account “Foobar2000” sarà del tutto automatico.

Ora, che ci crediate o no, possiamo finalmente scaricare ed installare Foobar2000 e iniziare a preoccuparci anche della sua gestione a livello di sistema. Non ancora, però, della sua configurazione.

Una volta completata l’operazione di installazione di Foobar2000 non ci resta che rendere la sua attivazione contestuale all’avvio del sistema. Questa è, forse, la cosa più complicata e stupida da fare:

  • Apriamo una finestra di “Esplora risorse
  • Selezioniamo la scheda “Visualizza” e abilitiamo la voce “Elementi nascosti
  • Andiamo alla cartella “Esecuzione automatica” seguendo il seguente percorso:
    • Windows C: (o comunque il disco radice di Windows)
    • Utenti
    • Utente base
    • AppData
    • Roaming
    • Microsoft
    • Windows
    • Menu Start
    • Programmi
    • Esecuzione automatica

Ora non dobbiamo fare altro che creare un collegamento all’applicazione Foobar2000 (trascinare l’icona di Foobar2000 presente sul Desktop è il modo più semplice e immediato per farlo). Inserite le credenziali di un account amministratore per confermare l’operazione e il gioco è fatto.

Riavviate la macchina e, come per magia, al prossimo login avrete la finestra di Foobar2000 già a schermo e pronta per essere configurata.

Foobar2000 – Step 1: il PC

Premessa: parto dal presupposto che non abbiate già una macchina per la riproduzione di musica liquida e che, quindi, dovete mettere in piedi il sistema da zero.

La prima domanda da porsi, quando si vuole approntare un PC per la riproduzione musicale tramite Foobar2000, è:

  • Il PC in questione mi servirà anche per altri scopi?

Se la risposta alla domanda è si allora il mio consiglio è quello di iniziare a dimensionare l’hardware in base a ciò che farete sulla macchina perché, banalmente, se avete intenzione di giocarci o di lavorare con CAD o foto e video allora vi posso assicurare che non avrete alcun problema a gestire il carico di lavoro imposto da Foobar2000 sul vostro sistema.
Lo stesso varrebbe per una macchina “standard” con cui fare piccola produttività su piattaforma Office e navigare il web/leggere mail. Davvero: Foobar richiede ben poco in termini di risorse di sistema per l’ascolto di musica.

Se la risposta è: devo solo ascoltarci musica le cose si fanno un po’ più complicate e bisognerebbe porsi un’altra:

  • Mi serve davvero un monitor o mi basta una piattaforma hardware a cui accedere da remoto per le configurazioni del caso e gestire la riproduzione, e solo la riproduzione, tramite app?

Io rientro nella seconda categoria e nel secondo caso: ho un PC dedicato ESCLUSIVAMENTE a Foobar2000, installato nel rack dell’impianto senza alcuna periferica di input (tastiera/mouse) e senza alcun output se non il collegamento USB al Rotel RC-1570 per la conversione.
Tutte le impostazioni sono fatte da un’altra macchina, nel mio caso un iMac ma poco cambierebbe nel caso di un PC Windows. Non prendo in considerazione l’ambiente Linux per un semplice motivo: se una persona lavora abitualmente in tale ambiente dò per scontato che non ha alcun bisogno di istruzioni e consigli per la configurazione di un SW di riproduzione audio. Per quanto complicato possa sembrare ai più.

Essendo la mia configurazione, per sua natura, la più basilare in termini di richieste mi concentrerò su dare istruzioni per questa. Ogni miglioramento hardware potrebbe solo portare a miglioramenti prestazionali ma non garantisco che il gioco valga la candela in termini di ritorno economico dell’operazione.

La mia configurazione, che mi permette di riprodurre senza alcun problema file dall’mp3 al FLAC 24/192, con l’elaborazione del segnale a me più congeniale attiva, è molto semplice:
si tratta di un MiniPC basato su processore Intel Atom x5-Z8350 con 4 GB di RAM e disco rigido di tipo eMMC da 64 GB.
EDIT:
Adesso sceglierei questo anche se alimentato a 12 V.
Le motivazioni che mi hanno portato ad optare per una configurazione di questo tipo sono:

  • Si tratta di un PC completamente privo di ventole e, di conseguenza, assolutamente silenzioso a qualsiasi carico di lavoro
  • Si tratta di un PC che è alimentato a 5 V con un alimentatore in grado erogare una corrente massima di 2,5 A. Ergo: se lo ritenessi opportuno (ma posso assicurarvi di no) potrei pensare di passare ad un’alimentazione lineare molto semplice per “ovviare” allo switching attualmente utilizzato.
  • A livello “potenza computazionale” è sicuramente un passo avanti rispetto all’Aspire One 532h che utilizzavo in precedenza.

Una volta dipanato il discorso hardware non reesta che parlare della piattaforma software su cui far girare il tutto ovvero la versione di Windows più adatta ai nostri scopi.

Qui le scelte sono due e quasi obbligate vista la scarsa differenza economica reale tra licenze preinstallate tra la versione Home e la versione Professional di Windows 10 (ovviamente le esigenze prese in considerazione sono ESCLUSIVAMENTE legate all’utilizzo come media player/streamer. Le differenze tra i due sistemi operativi riguardano anche altre funzionalità aggiuntive nella versione Pro che potrebbero essere per voi utili ma che qui non tratto):

  • Avete un monitor/tastiera e mouse sempre collegati alla macchina con cui andare ad operare in tutta comodita?
    Acquistate un PC con lincenza Windows Home.
  • Salvo la prima configurazione, per cui è necessario in ogni caso accedere direttamente al PC, non avrete modo di operare direttamente non avendo monitor/mouse/tastiera collegati (come nel mio caso)?
    Acquistate un PC con licenza Windows Professional.

Il perché di questa scelta “obbligata” è molto semplice: Windows Professional permette la connessione tramire Desktop Remoto senza bisogno di installare nessun software aggiuntivo e senza preoccuparsi di configurare firewall o simili.