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.3: Configuriamo Foobar2000! Pt.3

Oggi si rende tutto controllabile da remoto!

Lo faremo da piattaforma Android e la spiegazione è molto semplice: io utilizzo allo scopo il mio vecchio Asus/Google Nexus 7 che è ormai obsoleto per fare qualsiasi.
Non volendo disfarmene ho, però, deciso di dargli una seconda possibilità rendendolo il “telecomando di Foobar2000” e la cosa è davvero un gioco da ragazzi.

Per prima cosa vi consiglio, davvero caldamente, di assegnare un indirizzo IP statico al vostro PC. Questo renderà davvero agevole tutto il processo di primo avvio dell’app e ogni successiva iterazione tra “Telecomando” e “Player”.

Fatto ciò non bisogna fare altro che accedere al Play Store e cercare l’app “Foobar2000 controller” (QUI il link diretto), installarla (è gratis) e seguire le poche e semplici istruzioni.

Per comodità, di tutti, le indico anche qui passo-passo così da guidarvi e fornirvi tutte le indicazioni pratiche del caso:

  • La prima schermata potete skipparla a pié pari. Di fatto vi avvisa che avete installato un’applicazione che NON riproduce musica sul dispositivo ma che vi servirà per controllare il PC su cui Foobar2000 è in esecuzione.
  • Nella seconda schermata, invece, viene fornito il link a cui collegarsi per scaricare, e installare, i componenti necessari al corretto funzionamento del sistema (QUESTO il link da aprire sul PC in cui Foobar2000 è installato).
    Vedrete che il link rimanda ad un servizio di stoccaggio/condivisione di file e che state per scaricare un file eseguibile chiamato “Foobar2000 controller [PC-side setup] v2.0.1.exe”. Cliccate il pulsante “DOWNLOAD (457.51KB)” verde in alto a DX.
  • A download terminato lanciate l’eseguibile appena scaricato, inserite – se richieste – le credenziali di amministratore di sistema, e seguite il semplice wizard di installazione selezionando tutte le opzioni installabili (sono tre: “Installation files”, “HTTP Control 0.97-14-fb2k” e “Playback statistics”).
    L’installer a questo punto riconoscerà la versione di Foobar2000 installata a sistema e ve lo notificherà.
  • FATE ATTENZIONE AL PERCORSO FILE DI INSTALLAZIONE!
    L’Installer andrà di default ad installare il componente nella cartella relativa all’account amministratore inserito.
    Per risolvere la cosa dovete “semplicemente” modificare il nome utente presente nel percorso file indicato nella finestra di dialogo con quello dell'”utente base” dedicato a Foobar2000 (o del vostro utente attuale se non amministratore). La correttezza dell’informazione compilata vi sarà data, in diretta, perché vi verrànno consigliate tutte le sottodirectory esistenti.
    NON MODIFICATE ALTRO SE NON IL NOME UTENTE.
    Una volta fatto ciò cliccate “OK”.
  • A questo punto il componente, e tutte le sue componenti, viene effettivamente installato a sistema (ci vorranno pochi secondi).
    Premete “Next” e, se tutto è andato a buon fine, arriverete al prompt di conferma dell’installazione.
    Il file “Read Me” è un pro-forma che vi ringrazia per aver installato il software e vi conferma che da adesso siete abilitati all’utilizzo dell’applicazione di controllo remoto.

L’installer non lo chiede ma io vi consiglio di riavviare il PC. Così facendo “sveglierete” il firewall di Windows Defender che vi chiederà di abilitare l’applicazione Foobar2000 alle connessioni in entrata per le varie tipologie di rete disponibili (private o pubbliche).
Ricordate che all’inizio della guida vi avevo detto di configurare la vostra rete domestica come “Rete Privata”? Ecco: questo è il momento in cui la cosa vi sarà davvero utile.
Date l’abilitazione a Foobar per “rendersi visibile” sulle reti private e NON datela per le reti pubbliche. O, se proprio volete farlo, prendetevene tutte le responsabilità.

Tornate adesso al vostro tablet/telefono “telecomando” e andate avanti con la configurazione guidata dell’applicazione.

La terza schermata vi chiederà come intendete ricercare il PC sulla rete e qui le strade sono due:
– Se “Telecomando” e PC sono sulla stessa rete/Subnet potete tranquillamente premere il tasto “Auto” senza nessun timore; ci vorrà un po’ ma alla fine il PC sarà visto.
– Se “Telecomando” e PC sono sulla stessa rete ma hanno subnet differenti (difficile ma non impossibile – nel mio caso è così) vi consiglio di risalire all’indirizzo IP del PC e configurare il tutto manualmente.

Una volta che l’applicazione avrà correttamente individuato il PC, e si sarà “legata” ad esso, avrete pieno controllo di Foobar2000 e, quindi, della riproduzione.

Piccola nota a margine:
L’applicazione controlla SOLAMENTE la riproduzione e non tutte quelle che sono le impostazioni e regolazioni della stessa.
Ciò significa che per modificare l’abilitazione, o le caratteristiche di implementazione, di qualsiasi componente, così come la modifica di qualche variabile di sistema dovrete accedere al PC.

L’applicazione stessa è utilizzabile, ovviamente, anche per controllare la riproduzione dalla poltrona su quei sistemi che prevedono libero accesso al PC. Nulla vi vieta di farlo.

Per qualsiasi dubbio o richiesta di chiarimento su quanto detto/fatto fino ad ora vi invito a utilizzare i commenti qui sotto.

Buoni ascolti (in comodità).

Componenti di Foobar2000 – HDCD decoder

Eccoci col primo appuntamento dedicato ai componenti di Foobar2000.

Non so se ve lo ricordate ma qualche tempo fa ho scritto un articolo sugli HDCD e sul fatto che, non avendo più un lettore in grado di decodificare tale formato, stavo studiando un modo per effettuare la decodifica in fase di ripping dei CD così da ottenere un file FLAC contenente tutte le informazioni già pronte da dare in pasto al DAC senza preoccuparmi di null’altro.

Facendo 2+2, dando per scontato che seguiate il blog e avete letto il titolo del post, avrete capito che ho risolto il mio cruccio tramite Foobar2000 ed il suo componente dedicato al decoder HDCD che potete scaricare, nella sua ultima versione, a questa pagina.

Una volta scaricato, installato e reso operativo (riavviando Foobar2000) il plugin non vedrete assolutamente nulla di diverso a livello di interfaccia né avrete alcuna indicazione sul fatto che il decoder sia o meno attivo in fase di riproduzione di quei brani provvisti di tale codifica per cui, come me, vi troverete spiazzati senza sapere che pesci pigliare.
Non preoccupatevi che adesso vedrò di darvi una mano a capire e sfruttare bene il componente appena installato.

La prima cosa da fare, ovviamente, è verificare la presenza di tracce HDCD nella nostra libreria. Per fare ciò è sufficiente:

  • selezionare la voce “All Music” nella scheda di visualizzazione della libreria (la prima voce in alto)
  • cliccare col tasto destro del mouse
  • andare alla voce “Utilities”
  • selezionare l’opzione “Scan for HDCD Tracks”

Il processo richiederà un po’ di tempo in base all’estensione della vostra libreria musicale. Nel mio caso la scansione è stata completata in circa 20 minuti.
Nel riquadro “Processing”, che nello screenshot è vuoto, vengono visualizzati i file attualmente in elaborazione; l’elaborazione stessa è effettuata in ordine casuale (o almeno così mi è parso di intuire).

A scansione ultimata, portate pazienza nel caso in cui la vostra libreria sia pesante, Foobar2000 visualizzerà una finestra che elenca tutte le tracce HDCD presenti nell’archivio e le varie “opzioni” di codifica presenti.


Se adesso provate a riprodurre una delle tracce HDCD rilevate vedrete, con piacere, che non avete ancora modo di capire se il decoder sta lavorando né come sta lavorando… E questa è una cosa che a me ha fatto un po’ innervosire.
Il sistema rileva gli HDCD, in teoria li gestisce, e decodifica correttamente ma non ho modo di sapere se lo stia facendo veramente o meno.

Fortunatamente da questo punto di vista ci viene in aiuto la completa personalizzazione dell’interfaccia grafica di Foobar2000 e delle informazioni visualizzabili a schermo.
Interpellando le giuste variabili e visualizzando le giuste informazioni saremo in grado di far visualizzare tutto ciò che ci interessa sapere in modo davvero chiaro e trasparente.

Ecco come:

  • Aprite le preferenze dell’applicazione (File/Preferences)
  • Espandete la voce “Display”
  • Selezionate la voce “Default User Interface”

A questo punto la finestra vi mostrerà una finestra in due sezioni: la parte in alto riguarda la gestione del “Tema” per cui dell’aspetto generale del software mentre la seconda, quella che ci interessa, riguarda la personalizzazione delle informazioni di riproduzione “Playback state display formatting”.

L’area si divide in tre parti:

  • “Window Title”: come si insuisce è l’insieme di informazioni visualizzate come titolo della finestra di Foobar2000 (in alto a SX)
  • “Status bar”: sono le informazioni visualizzate nella barra di stato del riproduttore (in basso a SX)
  • “Notification area icon tooltip”: sono le informazioni che verranno rese disponibili puntando il mouse sull’icona di notifica che viene visualizzata, nell’area di notifica appunto, quando si “minimizza” il software.

A titolo di esempio di seguito vedete le mie impostazioni e le informazioni che visualizzo a schermo:

Come vedete nella barra del titolo ho inserito un flag che mi avvisa quando il decoder è attivo aggiungendo la voce “HDCD: ON” in testa al titolo stesso.

La barra di stato, invece, visualizza più informazioni e in dettaglio:

  • Se la traccia in riproduzione viene abilitata la sezione “HDCD” che si compone di tre elementi:
    • Peak Extender: restituisce valore “yes” se codificato all’interno della traccia, e quindi decodificato dal componente, oppure “no” se assente
    • Low Level Eq: riporta il valore in dB inserito all’interno della codifica per quanto riguarda l’estensione dinamica, o la compressione dinamica, inscritta nei bit aggiuntivi
    • Transient Filter: si comporta analogamente alla voce “Peak Extender”

Le informazioni legate alla decodifica del formato HDCD, però, non si fermano solamente qui per quanto riguarda la barra di stato: il file in riproduzione è un FLAC a 16 bit (come indicato nella scheda in alto a DX) ma, come si può vedere dalla barra di stato, il software sta gestendo un input a 24 bit. Questa è un’ulteriore conferma dell’attivazione del plugin nonché un’altra cosa da “inserire manualmente” nel sistema perché non prevista di default.

Per facilitarvi un po’ il lavoro vi riporto qui di seguito le stringhe da inserire per visualizzare le info così come le ho impostate io (copiate ed incollate SOLO la parte in grassetto e corsivo):

  1. $if($info(hdcd),’HDCD: ON – ‘) Visualizza la stringa “HDCD: ON – “
  2. $if($info(hdcd),’HDCD:’) $if(%__hdcd%,Peak Extender:%__hdcd_peak_extend%’ ‘ Low Level Eq:%__hdcd_gain%’ ‘Transient Filter:%__hdcd_transient_filter%’ ‘) Visualizza tutte le informazioni di codifica presenti nel file impaginate come spiegato poco sopra.
  3. %__bitspersample% bits / %samplerate% Hz Visualizza le informazioni di profondità di bit e frequenza di campionamento del flusso dati in riproduzione. Si tratta dei dettagli “in ingresso” ai DSP e non “in uscita” dagli stessi. Ergo: non vedrete ricampionamenti o resampling vari; vedrete le proprietà del file così come viene decodificato.

Per rendervi ancora più facile e pronto il tutto queste sono esattamente le mie impostazioni di visualizzazione:

  • Window title
    $if($info(hdcd),’HDCD: ON – ‘)[%album artist% – ][%album%: %tracknumber% -] %title%
  • Status bar
    $if($info(hdcd),’HDCD:’) $if(%__hdcd%,Peak Extender:%__hdcd_peak_extend%’ ‘ Low Level Eq:%__hdcd_gain%’ ‘Transient Filter:%__hdcd_transient_filter%’ ‘)| %codec% | %bitrate% kbps | %__bitspersample% bits / %samplerate% Hz | %channels% | %playback_time%[ / %length%]
  • Notification area icon tooltip
    $if($info(hdcd),’HDCD: ON – ‘)%artist% – %title%

Spero di esservi stato utile. Se avete dubbi o domande chiedete nella sezione commenti che vedrò di aiutarvi per quanto possibile.

Buoni ascolti!