TECNICA – DAC: Multibit/R2R/Ladder e Delta-Sigma

Vediamo se riesco a fare un po’ di chiarezza sulle due tipologie di conversione che vanno per la maggiore nel mondo audio. In realtà una va decisamente per la maggiore (Delta-Sigma) l’altra va per la maggiore, relativamente parlando, nel mondo dell’Hi-End essendo più semplice in termini teorici ma decisamente più complessa da implementare (è anche più “vecchia”).

I DAC Multibit/R2R/Ladder:

Piccola premessa: i primi DAC, di fatto, erano tutti esclusivamente di tipologia ladder, o R/2R, o Multibit, o altri tanti nomi strani ma che tutti significano esattamente la stessa cosa. Piccolo grande neo: molte componenti necessariamente precise per poter lavorare correttamente; moltissime e decisamente MOLTO più precise per poter lavorare correttamente a campionamenti elevati (sia in termini di bit che in termini di frequenza di campionamento).

Ma, in soldoni, come funzionano questi DAC?
In sostanza la conversione dell’informazione digitale di X bit veniva affidata ad una serire di porta logiche poste in parallelo ad un pettine di X partitori resistivi con caratteristca, appunto, R/2R (in realtà il primo ha caratteristica 2R/2R) per cui la tensione di uscita è direttamente, e istantaneamente, proporzionale all’ampiezza del campionamento in bit (avete presente il PCM? Ecco, questa modalità esegue la conversione 1/1 del segnale PCM). Se avete capito il concetto potrebbe anche sorgervi spontanea una domanda: ma quindi non c’è un chip adibito alla conversione? La risposta è, in caso di implementazione a componenti discreti della rete resistiva, NI.
Ci vuole comunque un’elettronica che interpreta il segnale digitale in ingresso (generalemente una serie di bit – in ambito audio sempre) e lo presenta alla circuiteria di “potenza” (che potrebbe anche essere integrata nello stesso processore) posta in parallelo alla rete resistiva in modo perfettamente sincrono sia in termini di profondità (numero di bit campionati) sia in termini di tempo e frequenza. Un conto è lavorare correttamente a 16/44.1 (non che sia facile) un conto è lavorare a 24/192 (o più come nel caso dei DAC prodotti da MSB – che però costano quasi come un monolocale).
Piccolo dettaglio: i convertitori basati su questa tipologia non possono, NON POSSONO, convertire segnali DSD. Non possono proprio fisicamente. Salvo conversioni in PCM effettuate a monte, la cosiddetta conversione DoP.

Infine i lati negativi: i DAC di questo tipo tendono ad avere un rumore di fondo maggiore, una dinamica (sulla carta) inferiore e, se implementati male, problemi di risposta in frequenza/fase dovuti alla non perfetta sincronia di pilotaggio dei rami della rete resistiva. In aggiunta a tutto ciò: un DAC di questo tipo non potrà MAI convertire il formato DSD senza preventive elaborazioni di segnale.

Lato positivo: quando implementati bene suonano meglio, meno “digitali” e meno freddi della controparte Delta-Sigma. Soprattutto, paradossalmente, in caso di segnali a “basso campionamento” in ingresso.

I DAC Delta-Sigma:

Qui la situazione si complica un po’ nel senso che da quanto ho capito la conversione, per i segnali PCM, non è diretta ma richiede qualche manipolazione del segnale che, in alcuni casi e a detta di alcuni addetti ai lavori – ma anche alle orecchie di molti appassionati – porta ad una sonorità più fredda e aspra per via del sovracampionamento applicato all’interno del chip di coversione (si, qui tutto si svolge mandatoriamente all’interno di un solo chip o di una architettura logica, comunque chiusa, di processo).

Di fatto la conversione operata all’interno di questi DAC è analoga a quella operata dagli amplificatori in classe D, o a qualsiasi altro sistema di tipo PWM, e che sta anche alla base della codifica DSD. In sostanza il campione ad N bit e X Hz viene trasporto in un segnale modulato in frequenza con modulante a frequenza molto maggiore di quella di campionamento. Questo segnale viene poi opportunamente filtrato in uscita per riportare il tutto al segnale audio di origine. Per quanto riguarda i segnali DSD, invece, il chip non fa nient’altro che riportare il segnale stesso alle sue frequenze di lavoro (demoltiplicando la frequenza di modulante) o, in alcuni casi ma non tutti, bypassando direttamente il segnale ai filtri di uscita senza apportare alcun tipo di manipolazione allo stesso.

Lato positivo: è più “semplice” lavorare su segnali ad alta risoluzione implementando sistemi di conversione PWM più spinti. Il tutto al costo, non indifferente, di dover necessariamente aggiungere stadi di filtraggio a regola d’arte onde evitare di andare a filtrare anche informazioni effettivamente presenti nel campionamento iniziale (anche in termini di fase e timing).

Di fatto entrambe le tecnologie, se spinte ai massimi livelli, hanno dei costi di progettazione non indifferenti per via della necessità di costruire dei sistemi di contorno tali da poter sfruttare appieno, appunto, l’alto livello di implementazione. A costi bassi, relativamente bassi, e a basse risoluzioni la tecnologia Multibit potrebbe avere un senso perché più sfruttabile e meno complicata da implementare correttamente.
Per avere una risposta univoca a questa domanda bisognerebbe provare con le proprie orecchie le due tecnlogie e trarre delle conclusioni, soggettive, su cui poi poter intavolare delle discussioni…

Foobar2000 – Step 4.2: Configuriamo Foobar2000! Pt.2

Se sei arrivato fino a qui è perché non ti basta poter ascoltare la tua musica da Foobar2000 con le impostazioni di default.
Anche perché, a volerla dire tutta, non stai nemmeno ascoltando esattamente la tua musica ma stai facendo rielaborare i tuoi file dal mixer di Windows che si sta occupando di prendere lo stream originale, se così possiamo definirlo, e riconvertirlo (non so con che tipo di algoritmo/approssimazione/fedeltà) a quella che è la configurazione impostata per il dispositivo audio in uso.

Come fare per risolvere questo problema e passare al cosiddetto Bit-Perfect?
La risposta è abbastanza semplice e, almeno in teoria, funziona per tutti i DAC riconosciuti dal sistema: bisogna installare un componente di Foobar2000 (e quindi iniziare ad apprezzare appieno la modularità del sistema) per bypassare il mixer di Windows e fare in modo che il flusso dati sia portato ad un livello macchina che sia il più basso possibile.
Microsoft stessa ha sviluppato una serie di API utili a tale scopo che rientrano nel cosiddetto WASAPI o, per esteso, “Windows Audio Session API” e, fortunatamente per noi, qualcuno si è preso la briga di studiarsi tali istruzioni ed integrarle in un componente che ha l’esatto compito di rendere Foobar in grado di interfacciarsi direttamente con il nostro dispositivo USB: tale componente si chiama “WASAPI Output Support” ed è arrivato alla sua versione 3.3.

Per scaricare il componente in questione cliccare QUI e cliccare Download. Una volta terminato il download del file dovrete, molto semplicemente, lanciarlo e seguire le istruzioni a video per procedere con l’installazione. Vi sarà chiesto di riavviare Foobar2000 e, come per magia, vi comparirà nell’elenco dei componenti installati assieme a quelli già presenti di default (l’elenco è visibile dal menù Preferences).

Bene, ora che abbiamo scaricato ed installato il componente non ci resta altro da fare se non attivarlo in tutto e per tutto.

Per fare ciò dobbiamo andare al pannello di gestione dell’Output (Playback/Output) e selezionare come dispositivo di uscita WASAPI (event o push): Nome del nostro DAC. Vi consiglio di iniziare selezionando la voce con funzionamento PUSH perché maggiormente compatibile; spiegherò più avanti le differenze tra le due modalità di esecuzione.
Una volta selezionato il nostro dispositivo vedrete che le opzioni riportate sotto alla gestione del buffer (di default impostato a 1000 ms) sono diventate accessibili e modificabili: impostate la profondità di bit, come suggerito anche da Foobar stesso, alla massima dichiarata per il vostro DAC mentre per quanto riguarda la voce “Buffer Lenght” dovrete sperimentare un po’, più avanti, per adeguare tale “riserva di musica” al vostro setup definitivo.
Considerate, però, che un buffer troppo corto può risultare in una riproduzione intermittente e un buffer troppo lungo può causare (anzi causa) ritardi di risposta del sistema.

Se provate ad avviare la riproduzione di un qualsiasi brano adesso, SENZA ATTIVARE nessun DPS (anche perché non ne abbiamo ancora parlato), vedrete che il vostro DAC aggancia il segnale alla frequenza di campionamento del pezzo in riproduzione. State ascoltando in “Bit-Perfect”.

Ora vediamo quali sono le differenze tra le due modalità operative del componente WASAPI:

  • In modalità Push, in sostanza, è il PC a gestire il flusso dei dati indipendentemente dallo stato del DAC e dell’effettiva capacità dello stesso di immagazzinare e, soprattutto, elaborare e decodificare i dati stessi. Nonostante questi “inconvenienti” vi consiglio comunque di iniziare con questa impostazione perché è quella compatibile con praticamente tutti i DAC in commercio (o meglio con i ricevitori USB installati sugli stessi)
  • In modalità Event, invece, inverte la gestione del flusso e il carico di lavoro passa direttamente al controller USB del DAC in uso. Di fatto, se supportata dal dispositivo, rende l’approvvigionamento dei dati realmente asincrono e completamente slegato dal PC per cui potenzialmente migliore.

All’atto pratico i due sistemi, se correttamente implementati e funzionanti, non hanno alcuna differenza all’ascolto ma differiscono a livello di bilanciamento del carico di lavoro.

Bisogna, però, tenere conto che con la modalità Push il PC gestisce il flusso, e quindi lo subordina all’eventuale elaborazione dei dati (sovracampionamento, filtraggio, equalizzazioni e così via) rischiando di saturare il buffer del DAC (che a sua volta attua elaborazioni del segnale) qualora l’elaborazione dei dati fosse troppo veloce (eventualità veramente difficile perché “regolata” dallo stream/durata del bano); d’altro canto la modalità Event potrebbe fare in modo che il DAC richieda dei dati non ancora disponibili, perché non ancora elaborati dal PC, causando dei vuoti di memoria (eventualità assai più probabile perché il controller USB integrato nel DAC non sa a che ritmo deve gestire il flusso dei dati).

Per ovviare a questi problemi bisogna intervenire modificando la dimensione del buffer di uscita di Foobar2000 che ha lo scopo di uniformare il flusso dei dati in uscita dal sistema. Sia che questi siano spinti fuori dal PC sia che questi siano tirati dentro il DAC.
Ogni combinazione PC/DAC trova il suo equilibrio in un valore differente impostato per tale cuscinetto. Valore che può essere trovato solo sperimentalmente, e da voi, in base alle configurazioni in uso sul vostro sistema.
Io, nel mio caso, utilizzo la modalità Push e vivo sereno.

Ribadisco però il concetto fondamentale:

LE DUE IMPOSTAZIONI NON HANNO NESSUNA DIFFERENZA ALL’ASCOLTO A PATTO CHE LA RIPRODUZIONE SIA CONTINUA E PERFETTAMENTE FLUIDA.

E con questa pagina si conclude la nostra vventura circa la configurazione di Foobar2000 intesa alla riproduzione Bit-Perfect, e quindi pienamente fedele al flusso dati originale.

Nei prossimi capitoli ci concentreremo sull’installazione e utilizzo delle componenti necessarie, a mio modo di vedere, al fine di sfruttare appieno il software; allo stesso tempo vedremo anche come modificare l’interfaccia utente così da poter verificare il corretto funzionamento del sistema.
Vedremo, inoltre, come aggiungere delle webradio alla libreria.

Ovviamente arriveremo anche al nocciolo della questione: rendere remotabile il sistema.

Finalmente posso scriverlo:

Buona musica!

Foobar2000 – Step 4.1: Configuriamo Foobar2000! Pt.1

Piccolo riassunto delle puntate precedenti:

Se siete arrivati fin qui dovreste ritrovarvi tra le mani un PC Windows 10 Pro configurato per poterci accedere da remoto e, cosa più importante, con login ed avvio automatico di Foobar2000.

Eccoci, quindi, al primo vero avvio del nostro media streamer.

Dai che ormai si inizia a vedere la luce in fondo al tunnel!

Al primo avvio di Foobar2000 potrebbe essere richiesto l’inserimento delle credenziali di amministratore per abilitare il servizio di aggiornamento automatico dell’app.
Qui lascio a voi la scelta sul da farsi; io, personalmente, ho disabilitato gli aggiornamenti automatici e preferisco fare un controllo manuale ogni tanto senza preoccuparmi troppo di avere sempre l’ultima versione disponibile.

Aggiornamenti a parte la prima cosa da fare, obbligatoriamente, è quella di selezionare che tipo di visualizzazione vorremo.
Nel mio caso, non avendo alcuna particolare necessità di visualizzazione dato che gestirò il tutto via App, non mi sono preoccupato troppo ed ho selezionato la prima voce disponibile lasciando invariate sia la selezione dei colori che la sezione di “Layout” e “Playlist”.

Una volta selezionata la configurazione di visualizzazione a voi più gradita ci si troverà di fronte una bella finestra vuota in cui non è presente nessun brano.
A questo punto direi che potrebbe essere il caso di preoccuparsi di popolare la libreria del software ed iniziare la vera e propria configurazione del player.
Per fare ciò apriamo il menù di configurazione cliccando su “Library” e poi selezionando “Configure“.

Ci si aprirà il menù di configurazione di Foobar2ooo, casualmente alla voce “Library”, e sarà visualizzata la finestra di gestione delle cartelle di input.
Per aggiungere una cartella, o un percorso di rete nel caso utilizziate un NAS come sorgente, sarà sufficiente premere il tasto “Add…” e aggiungere tutte le cartelle che utilizzate per conservare i vostri file musicali.
Così facendo il software si occuperà di effettuare una scansione delle cartelle e inserire tutti i file trovati all’interno della libreria di riproduzione SENZA COPIARE NESSUN FILE NEL VOSTRO PC.
Una volta selezionata la cartella, o le cartelle, di vostro interesse vedrete che alla voce “Status” saranno indicate come “Pending“.
Applicando le modifice (tasto “Apply”) lo stato passerà prima ad “Initialising…”, e vedrete popolarsi la vostra libreria nella finestra principale; una volta che l’operazione di sincronizzazione sarà ultimata lo stato passerà a “Monitoring” e voi, a questo punto, avrete tutta la vostra libreria musicale a vostra disposizione.

Facendo un breve recap: avete un PC configurato a dovere lato SO, avete appena lanciato Foobar2000 e caricato la vostra libreria musicale.
Direi che non vi resta altro da fare se non premere play
E invece no!
Dovete prima selezionare il vostro DAC come dispositivo di Output per ascoltare, finalmente, dal vostro impianto.

Per fare ciò bisogna accedere nuovamente al menù di configurazione da “File/Preferences”, o premendo CTRL+P, espandere la sezione “Playback” premendo il simbolo “>” alla sua SX, aprire la scheda “Output” e selezionare, dall’elenco alla voce “Device” il proprio DAC USB così che il software inoltri il segnale audio allo stesso.

Ora si che sarete, finalmente, in grado di ascoltare qualsiasi brano secondo le impostazioni, profondità di bit e frequenza di campionamento, impostate come default per il dispositivo USB dal pannello di controllo di Windows.

Nulla a che vedere, però, con la modalità Bit Perfect a cui dobbiamo arrivare.

Il tunnel è ancora un po’ lunghino ma manca davvero poco.