Bit perfect audio in Windows

Bit perfect audio in Windows

Ascoltando musica da computer, bisogna essere al corrente che il flusso di dati subisce alterazioni, causate sia da componenti hardware, che software. Come un musicista che cura la qualità della sua catena (cavo, effetti, ampli, cassa, …), noi ascoltatori di musica liquida dobbiamo fare altrettanto.

In questa guida ci occuperemo della parte software: otterremo una riproduzione audio bit perfect (non alterata) utilizzando foobar2000 con WASAPI.

Introduzione

In Windows 98 e XP, il componente software che gestiva l'audio era KMixer (Windows Kernel Audio Mixer). In Vista e successivi è stato rimpiazzato da WASAPI (Windows Audio Session API) in modalità non esclusiva.

Windows Mixer

I flussi audio provenienti da diversi programmi quindi, vengono mixati insieme, causando:

  • Disturbo: i suoni di altri programmi disturbano la riproduzione;
  • Alterazione: il flusso audio mixato non corrisponde qualitativamente all'originale;
  • Possibile rumore di fondo.

In questa guida faremo lavorare foobar2000 con WASAPI in modalità esclusiva, eliminando i problemi appena elencati.

Installazione foobar2000 e WASAPI

  1. Installiamo foobar2000;
  2. Scarichiamo il componente WASAPI;
  3. Installiamo WASAPI copiando il file foo_out_wasapi.dll in C:\Program Files (x86)\foobar2000\components\;
  4. Riavviamo foobar2000.

Configurazione WASAPI in foobar2000

Dopo aver aperto foobar2000, andiamo in File -> Preferences (CTRL+P) -> Playback -> Output e selezioniamo l'output WASAPI del proprio dispositivo audio.

Differenza tra Event e Push

Tra le due modalità non c'è nessuna differenza qualitativa. Differiscono solamente per il modo in cui operano:

Selezione foobar2000 WASAPI Device

Push:

  • Supportato da più hardware;
  • Il flusso viene “spinto” attivamente da WASAPI verso la scheda audio;
  • Più latenza con i segnali di riproduzione (play, pause, stop, ecc).

Event:

  • Non pienamente supportato da tutti gli hardware;
  • Il flusso proveniente da WASAPI viene “preso” dalla scheda audio (gestione tramite eventi);
  • Meno latenza e dimensioni del buffer minori;
  • Tutte le sessioni WASAPI (creazione, uso e distruzione) sono gestite in una singola istanza.

Ricapitolando, la modalità Event offre più vantaggi e risulta più conveniente in termini di prestazioni, a discapito della compatibilità.

Dimensione del buffer (buffer lenght)

La grandezza del buffer varia da caso a caso e serve a garantire un flusso continuo ed ininterrotto di dati. La sua dimensione può variare da caso a caso (nel mio vanno bene i default 4420 ms). Se riproduci musica da sorgenti remote ed hai interruzioni durante l'ascolto, prova ad aumentare la dimensione del buffer.

Buffer dello stream audio

Grandezza del buffer troppo bassa:

  • Interruzione del flusso multimediale;
  • Disco impegnato con più frequenza ma con poco carico di lavoro (file recuperato in molti piccoli pezzi).

Grandezza del buffer troppo alta:

  • Latenza con i comandi di playback (play, pause, stop, ecc);
  • Disco impegnato con meno frequenza ma con molto carico di lavoro (file recuperato in pochi pezzi più grandi).

foobar2000 esprime la grandezza del buffer in ms (e non in KB), indicando i ms di musica che dovrà caricare in memoria.

Profondità di bit (output format)

La profondità di bit (risoluzione) indica il numero di bit presenti in ogni campione. Essa va configurata a seconda della profondità di bit dei file da riprodurre, infatti il valore di default 16 bit è perfetto per la maggior parte della musica in circolazione, campionata appunto a 44.1KHz/16bit.
Impostarla su un valore non corrispondente a quello dei file sorgenti, non risulterà altro che in degrado di qualità.

Dither

Durante l'editing audio la profondità di bit cresce; al termine di questa fase, essa deve essere riportata al valore originale (es. 16 bit).

A questo punto i bit in eccesso vengono eliminati o arrotondati a seconda dell'algoritmo usato. In ogni caso si generano delle distorsioni che non dovrebbero occorrere durante l'ascolto di un brano musicale.

Per questo si utilizza il Dithering, una tecnica che aggiunge un fondo di rumore bianco al brano, rendendo i comportamenti non lineari (distorsioni) meno evidenti per l'orecchio umano. È comunque consigliato lasciare questa opzione disabilitata.

Fine della configurazione

foobar2000 è ora pronto per far lavorare WASAPI in modalità esclusiva, per una riproduzone audio bit perfect. Quando foobar2000 è aperto, non si riceverà output sonoro da nessun altro programma e il mixer di Windows verrà completamente scavalcato. Per ascoltare l'audio da un altro programma, dobbiamo chiudere foobar2000 e riprovare; a seconda del programma, può anche essere necessario riavviarlo.