Niente più Foobar2000 nell’impianto principale…

Come si evince dal titolo del post: addio Foobar2000 per l’impianto principale.

Ho trovato un’offerta per un Mac Mini su Subito.it e non me lo sono lasciato scappare per due semplici motivi: sfruttare l’abbonamento Apple Music per lo streaming in alta risoluzione e, soprattutto, sfruttare la licenza di Audirvana 3 e l’integrazione con iOS per una gestione headless del tutto.

Devo ammetterlo: la facilità di integrazione e gestione remota offerte dalla combo macOS e iOS è impareggiabile.

C’è da dire che, però, non ho abbandonato del tutto Foobar2000.

Me lo sono, semplicemente, portato in ufficio.

Il resampling: parliamone – Pt.2

Nell’articolo precedente ho cercato di chiarire in cosa consiste il resampling di un segnale e del perché, in alcuni casi, questo porti a dei benefici apprezzabili all’ascolto.
Il tutto con l’obiettivo finale di poter parlare dei componenti di resampling installabili in Foobar2000.

Per fare un breve riassunto: un resampler ha il compito di “ricostruire” il maggior numero possibile di informazioni di un segnale, a risoluzione più bassa di quella nominale di lavoro, aumentandone sia la profondità, i bit, che la quantità, la frequenza, del campionamento.
Abbiamo anche visto che, nella realtà dei fatti, un resampler non deve aggiungere assolutamente nulla di nuovo all’informazione iniziale.

Di fatto i “nuovi campionamenti” inseriti dall’algoritmo sono stimati, in modo più o meno approfondito dal punto di vista matematico/statistico, in base a diversi fattori che ne costituiscono le basi operative. Ma quali sono questi fattori? Al di là dell’approccio matematico con cui vengono effettuati i calcoli, che introducono potenzialmente infinite variabili, c’è un elemento davvero imprescindibile per lo sviluppo di un resampler: la massima frequenza prevista per il segnale in uscita.
In base a questo valore i calcoli di stima dei nuovi campioni saranno limitati in termini di “velocità di risposta” del segnale in uscita e, di conseguenza, avremo un’approssimazione tendenzialmente più corretta del segnale originale in ingresso e minori errori di interpolazione/interpretazione.
Come viene fatta questa operazione? La risposta è molto più semplice di quanto si possa immaginare: viene inserito un filtra passa basso, simulato a livello matematico, all’interno dell’algoritmo di ricampionamento.

A livello ideale questo filtro dovrebbe eliminare tutte le frequenze al di sopra del nostro valore di riferimento in modo netto ma la cosa, anche se tecnicamente fattibile, comporta notevoli svantaggi in termini sia di complessità che di corretta implementazione e, di conseguenza, perdite di efficienza del sistema unita a potenziali effetti indesiderati come oscillazioni o sfasamenti molto accentuati per frequenza prossime a quella di taglio e transienti.

Vi invito a guardare questo video di Google, in inglese, che spiega in modo abbastanza chiaro i principi che stanno alla base di un algoritmo di resampling, le difficoltà di corretta implementazione e, soprattutto, gli effetti indesiderati di un errato dimensionamento del filtro o della sua assenza.

Tali effetti collaterali sono anche quelli che si verificano all’interno di quei DAC, inteso come circuito integrato e non necessariamente come dispositivo, che non dispongono di algoritmi avanzati e per cui gli utenti trovano vantaggioso l’utilizzo di un resampler esterno. Sono, ovviamente, anche il motivo per cui molti produttori hanno sviluppato algoritmi di resampling e filtraggio esterni all’IC utilizzato.

Esiste poi, in campo audio, un altro problema non da poco: il rapporto tra la frequenza del segnale in ingresso e la frequenza di lavoro del DAC stesso che non è sempre un valore intero.
Il WM8740 integrato nel mio Rotel RC-1570, ad esempio, lavora alla frequenza di 192 kHz e quando si trova ad operare su segnali a qualità CD, che sono a 44.1 kHz, segue una logica di funzionamento un po’ strana per ovviare al rapporto di 4,35 tra le due frequenze: se il “ritardo di fase” tra il campione in ingresso e il segnale di lavoro è inferiore a 0,5 del rapporto non succede nulla altrimenti esegue un ricampionamento aggiuntivo per riempire il buco; dopo ogni campionamento “dispari” viene verificata l’entità del ritardo di fase e se superiore all’unità il sistema procede ad un riallineamento della fase stessa .
Suona, ed è, abbastanza complicato ma in parole povere funziona più o meno così:

  • Il primo sample viene ricampionato 4 volte: 4,35-4=0,35 < 0,5 per cui il quinto campione viene saltato. Uscita in anticipo di fase di 0,65 campioni
  • Il secondo sample viene ricampionato 5 volte: (0,35+4,35) – 4 = 0,7 > 0,5 per cui il quinto campionamento viene eseguito. Uscita in anticipo di fase di 0,3 campioni.
  • Il terzo sample viene ricampionato 5 volte: (0,7 + 4,35) – 4 = 1,05 > 0,5 per cui il quinto campionamento eseguito e si realizza il riallineamento di fase. Uscita in anticipo di fase di 0,05 campioni.
  • Il quarto sample viene ricampionato 4 volte (0,05 + 4,35) – 4 = 0,40 < 0,5 per cui il quinto campione viene saltato. Uscita in anticipo di fase di 0,6 campioni e via così

Questo perché il DAC in questione opera con una sola base dei tempi, una sola frequenza di riferimento, è non è in grado di effettuare correzioni per segnali privi di sincronia intera. Lo stesso procedimento viene, ovviamente, seguito anche per tutte le frequenze multiple di 44.1 kHz con approssimazioni via via meno pesanti all’aumentare della frequenza di campionamento e, quindi, direttamente proporzionali alla diminuzione del rapporto tra frequenza in ingresso e frequenza di lavoro.

Per ovviare a questo problema alcuni DAC utilizzano due oscillatori di riferimento distinti così da rallentare l’effettiva frequenza di lavoro dell’IC ad un multiplo di 44.1 kHz e rendere il ricampionamento sempre intero. Nel caso del Wolfson 8740 la frequenza di lavoro passerebbe da 192kHz a 176,4 kHz senza più bisogno di ricorrere a procedimenti di skip o sfasamenti tra il segnale in ingresso e quello in uscita.

Un’altra tecnica utilizzabile è, invece, quella implementata da ESS sui suoi Sabre e denominata “32-bit HyperStream DAC technology”: la frequenza di lavoro è talmente elevata che skip e sfasamenti hanno entità tale da essere quasi impercettibili. QUASI impercettibili, non assenti.
Nota a margine: il “vecchio” ESS 9018 lavorava e ben 84.672 MHz con resampling dei segnali CD pari a 1920x e un demoltiplicatore interno di frequenza per segnali aventi frequenza multipla di 48 kHz. Accettava, ovviamente, due basi dei tempi distinte per minimizzare ulteriormente gli errori di approssimazione.

Infine, ovviamente, si può evitare che sia il DAC ad occuparsi del resampling ed affidarsi ad algoritmi esterni studiati ad hoc per risolvere i problemi di sincronia.

Finalmente possiamo parlare dei resampler per Foobar2000.
Ma lo faremo nel prossimo appuntamento.

Il resampling: parliamone

Premessa:
Pensavo di parlare dei resampler come prossimo componente della guida dedicata a Foobar2000 ma mi rendo conto che prima di parlarne potrebbe essere il caso di cercare di capire il concetto alla base del “resampling”.

Premessa 2.0:
“resampling” e “upsampling” sono, spesso e volentieri, intercambiabili nel mondo audio.
Diciamo che, a livello generale, col primo si intende un incremento della frequenza di campionamento e col secondo un incremento della profondità del campionamento. Di fatto, però, le due cose vanno di pari passo per cui credo di poter dire che i resampler disponibili per Foobar2000, ma anche quelli integrati nei dispositivi di riproduzione, fanno entrambe le cose allo stesso tempo.

Premessa 3.0:
qualsiasi manipolazione di un segnale digitale non aggiunge, ripeto NON AGGIUNGE, nessuna informazione al segnale stesso. Il segnale di uscita, una volta convertito, avrà esattamente le stesse caratteristiche del segnale campionato in ingresso. ESATTAMENTE LE STESSE.
A patto che il resampling sia stato fatto a regola d’arte. Altrimenti le informazioni finali potrebbero anche essere minori/peggiori.

Premessa 4.0:
un resampling fatto male introduce errori di interpolazione, sotto forma di “aliasing”, sfasamenti (soprattutto agli estremi di banda), possibili oscillazioni sui transienti e una miriade di altre problematiche non da poco. Senza entrare nel magico mondo dei disturbi digitali veri e propri come jitter e compagnia.

Viste le premesse 3 e 4, però, è lecito chiedersi: perché in molti preferiscono abilitare gli algoritmi di ricampionamento quando ascoltano la musica da PC? E perché all’aumentare della risoluzione del file in riproduzione
O anche: perché le aziende produttrici di elettroniche investono, o hanno investito, in algoritmi di elaborazione del segnale che altro non sono se non DSP di resampling/upsampling integrati, a monte del DAC, nei loro dispositivi?

La risposta, nonostante tutto, è davvero semplice e si ricollega ad un concetto che ho già trattato nell’articolo “I DAC: Multibit e Delta-Sigma” e che è strettamente legato al fatto che la stragrande maggioranza dei dispositivi di conversione da digitale a analogico è basata sulla seconda famiglia di IC: i Delta-Sigma.

Se avete letto l’articolo, se non lo avete fatto dovreste, sapete che all’interno di un DAC ΔΣ (fa più figo usare le lettere greche) il segnale digitale in ingresso viene convertito in un segnale impulsivo ad alta frequenza (una sorta di PWM) che, opportunamente filtrato, costituisce il segnale analogico in uscita.
Il problema è che i moderni convertitori lavorano a frequenza e profondità di campionamento decisamente superiori a quelle di un CD e non sempre i DSP integrati, adibiti alla “pre-conversione” al formato di lavoro del DAC stesso, lavorano a regola d’arte e, comunque, sono spesso meno performanti di un processamento fatto ad hoc da un dispositivo esterno; indipendentemente dal fatto che si tratti di un PC o dell’FPGA/DSP che lavora su algoritmi proprietari del produttore (tipo l’Alpha Processing di Denon tanto per citarne uno).

Detto in parole povere: il resampling, fatto a monte del DAC, ha il compito di bypassare, il più possibile, il pre-processamento del segnale prima che questo arrivi al convertitore vero e proprio. Se poi tale processamento può essere fatto in modo controllato in tutte le sue variabili tanto meglio.
Più le operazioni di ricampionamento sono fatte a regola d’arte meno sporcizia entrerà nel convertitore ΔΣ e, di conseguenza, meno ne arriverà ai filtri di uscita del DAC per cui ci avremo meno artefatti, meno sfasamenti, meno fenomeni di ringing con conseguente maggior naturalezza dal suono riprodotto.

Tutto questo con un però:
se utilizzate un DAC che integra un processore di resampling “proprietario” potrebbe valere la pena lasciar lavorare unicamente quello perché i filtri temporali e di attenuazione di banda montati in uscita al convertitore potrebbero essere stati studiati e dimensionati proprio per andare a compensare il lavoro dei DSP installati a monte.
Tenete presente che la maggior parte degli audiofili che preferisce non ricorrere al resampling in Foobar2000, o nel software di riproduzione in uso, piuttosto che si limita ad un resampling “intero” (2x/4x e così via) ha generalmente a che fare con situazioni di questo tipo.