9 Jul 2009 - Dal mio sito www.noisecollective.net

Molti di noi si scontrano quotidianamente con la famigerata LATENZA audio, ovvero quel ritardo che percepiamo quando un segnale audio arriva alle nostre orecchie in ritardo rispetto al momento in cui viene generato.

La situazione più comune con cui spendono le nottate i novizi del settore computer music, è quella legata ai software e al controllo di essi tramite un controller esterno, ad esempio una Master Keyboard. Premo il tasto e il suono mi arriva con un consistente ritardo, tale da impedirmi di suonare una parte... molto fastidioso!

Per l'orecchio umano la soglia di ritardo accettabile è dai 30 ms in giù, Facciamo un esempio: Immaginiamo di avere due bacchette in mano e di percuotere con entrambe una superficie. Se la differenza di arrivo delle due bacchette sulla superficie è inferiore ai 30ms percepiremo un suono solo, al contrario oltre i 30ms percepiremo due suoni distinti.

Questo esempio ci indica qual'è la soglia accettabile per la nostra latenza, ovviamente (in teoria) più si scende verso gli zero millisecondi meglio è, può capitare che alcuni software indichino una latenza pari a zero ma in realtà non è mai così perché fisicamente è un risultato impossibile da raggiungere.

Per capire come lavorano i moderni software audio ed imparare a gestire la latenza nel nostro sistema, dobbiamo innanzitutto capire come il nostro computer tratta il flusso di dati necessario alla generazione ed elaborazione dell'audio.

Il mattone fondamentale delle nostre impostazioni è il BUFFER.

La RIPRODUZIONE di audio digitale, richiede un flusso costante di dati provenienti dall'Hard disk o dalla ram del nostro sistema, dati che per essere ascoltati devono prima essere convertiti in ANALOGICO dalla nostra scheda audio (DA). Al contrario la REGISTRAZIONE di materiale audio in digitale necessita, prima della memorizzazione su HD o su RAM, di una conversione da analogico in DIGITALE (AD).

Dal momento che qualsiasi sistema operativo (Win/Mac/Linux) non è in grado di fare tutti questi passaggi in una volta sola, le operazioni necessarie al trattamento dei nostri dati vengono suddivise in task (multitasking) ognuno dei quali grava come consumi sulla nostra CPU.

Per mantenere un continuo flusso di dati, piccole quantità di RAM (BUFFER) vengono utilizzate per memorizzare temporaneamente un pezzo di audio alla volta.

Durante la fase di riproduzione, i dati vengono letti dal buffer, alleggerendo così il carico della CPU che in questo modo rimane disponibile per supportare il sistema operativo durante la fase di conversione da Digitale ad Analogico.

Man mano che la conversione procede, il buffer si svuota e viene riempito con nuovi dati pronti per essere riprodotti. Allo stesso modo, durante la registrazione di audio in entrata, il buffer viene riempito di dati e il sistema operativo torna ogni tanto a prenderne un pezzo per salvarlo su HD.

Se il buffer ha una dimensione troppo piccola e si svuota (in riproduzione) o si riempie (in registrazione) troppo in fretta, il nostro flusso audio avrà delle piccole lacune che noi percepiremo come un click (glitches), inizialmente saranno occasionali poi sempre più frequenti ed infine diventeranno regolari creando una distorsione del nostro materiale audio.

Aumentare la dimensione del buffer risolve questo problema ma ha un effetto collaterale: qualsiasi modifica viene fatta dal software al materiale audio, non sarà riprodotta fino alla successiva lettura del buffer. Ecco che si crea l'effetto di ritardo definito come LATENZA.

Come abbiamo detto, la latenza è evidente in due situazioni, nel caso di un sintetizzatore virtuale o di un campionatore software (riproduzione) che restituisce il materiale audio in differita rispetto all'istante in cui premo un tasto sulla mia tastiera oppure durante la registrazione di una performance dove la situazione peggiora notevolmente visto che non si sarà in grado di ascoltare il segnale in entrata finché questo non sarà prima passato dal buffer di input, abbia raggiunto il software, venga convertito, passi per i buffer di output e in fine raggiunga i nostri diffusori.

In genere la latenza sul 'monitoraggio' è pari al doppio di quella che abbiamo in riproduzione.

Ulteriore latenza può essere aggiunta dai plug-in che normalmente utilizziamo sulle nostre tracce, riverberi, compressori, delay e quant'altro gravano ulteriormente sulle capacità di calcolo della nostra CPU influendo sul risultato finale che vogliamo ottenere.

Quasi tutti i software oggi, ci vengono in contro inserendo un ulteriore controllo per la correzione della latenza, in ABLETON Live questo parametro si chiama 'Driver Error Compensation' (esiste anche su Logic e Cubase ad esempio). Questa funzione cerca di ridurre al minimo i tempi di latenza durante la fase di registrazione.

Le moderne interfacce audio, dispongono di un routing interno che ci permette di ascoltare il segnale in ingresso bypassando il software (Zero latency monitoring), molto utile in fase di registrazione per mandare ad esempio una copia del segnale in registrazione all'esecutore. Il termine 'Zero latency' può trarci in inganno, come detto prima la latenza non potrà mai essere pari a Zero ms perché in ogni caso il segnale deve essere convertito da analogico a digitale o viceversa. Ottimi convertitori ci garantiscono tempi di conversione pari a 2ms, ritardo pienamente accettabile.

Ci possono essere poi altre cause che concorrono ad aumentare la latenza come ad esempio l'uso di frequenze di campionamento che non sono supportate nativamente dai convertitori.

Tuttavia questo tipo di monitoraggio non consente l'addizione di effetti sul segnale che andiamo a monitorare, ad esempio l'aggiunta di riverbero in cuffia al cantante e così via... per ovviare a questo problema possiamo utilizzare unità effetti esterne o meglio ancora schede audio che ospitano al loro interno dei DSP dedicati all' effettistica come ad esempio le moderne MOTU MK3.

Purtroppo la latenza zero non può essere utilizzata con i softsynth o con i software in genere perché la forma d'onda generata deve prima passare attraverso una serie di buffer per poi essere ascoltata.
Quindi abbiamo la necessità di mantenere ridotte le dimensioni del buffer.

Molti produttori di schede audio forniscono, insieme ai loro driver, dei software di controllo per la latenza dove la dimensione del buffer viene indicata direttamente in millisecondi in funzione della frequenza di campionamento che stiamo utilizzando e questo ci facilità il compito in fase di regolazione, tuttavia alcuni software indicano la dimensione del buffer in SAMPLES. Per risalire al valore in millisecondi sarà sufficiente dividere il numero di SAMPLES per il numero di campioni al secondo (frequenza di campionamento). Ad esempio se abbiamo come valore 256 SAMPLES, dividendoli per una frequenza di campionamento pari a 44.1kHz (44100 Hz) otterremo un valore di latenza pari a 5,8ms approssimabili a 6ms.

A questo punto avrete notato che ad un aumento della frequenza di campionamento corrisponde una diminuzione del tempo di latenza. Purtroppo però aumentando la frequenza di campionamento aumenta anche il carico di lavoro per la CPU che dovrà svolgere più calcoli nello stesso frangente di tempo.

Molti dimenticano, cercando di raggiungere un buon compromesso per la latenza, che la regolazione del buffer va ad influenzare quello che chiamiamo OVERHEAD della CPU, ovvero il carico di lavoro per il processore del nostro computer. Infatti, più si riduce il tempo di latenza più aumenta il numero di calcoli che la CPU deve svolgere per poter trattare tutti i dati.

Ad esempio, se abbiamo una frequenza di campionamento di 44,1 kHz e una latenza di 12 ms, il buffer ha bisogno di essere riempito e svuotato circa 86 volte al secondo ma se tentiamo di ridurre a 64 samples la dimensione del buffer a 44,1 kHz per avere una latenza di 1,5 ms, il buffer va compilato 689 volte al secondo causando così un carico notevole di lavoro per il sistema.

Ruolo fondamentale in questa fase lo hanno i driver delle schede audio, migliore è il driver e minore sarà il consumo di risorse, inoltre una scheda audio esterna USB o FIREWIRE causerà sempre un maggior consumo di risorse rispetto ad una scheda audio PCI o PCMCIA.

CONSIDERAZIONI SUI VALORI COMUNI DI LATENZA
In questo breve paragrafo prenderemo in considerazione alcuni dei valori consigliati o più comuni per una pacifica convivenza con il nostro problema di latenza.

La VOCE: Questa è senz'altro la situazione più complicata, perché per quanto sia basso il valore di latenza, il cantante percepirà comunque un ritardo dovuto al fatto che essendo lui stesso ad emettere il suono sarà sempre in anticipo sull'ascolto. Anche 3ms di ritardo possono essere fastidiosi.

BATTERIA E PERCUSSIONI: un tempo di latenza accettabile è dai 6 millisecondi in giù.

CHITARRE e BASSI: Normalmente questi due strumenti vengono suonati a pochi metri dall'amplificatore e dato che la velocità del suono nell'aria è pari a 344 m/s, ogni millisecondo di ritardo equivale ad ascoltare l'audio a circa circa 30 centimetri di distanza dal punto precedente. Quindi se si può suonare la chitarra ad un'ipotetica distanza di 3 metri dall'amplificatore, 12 ms di latenza non dovrebbero essere un problema.

TASTIERE: anche nel pianoforte abbiamo un tempo di latenza che va da quando premo il tasto a quando il martelletto colpisce la corda, 6 ms saranno sufficienti anche per il pianista più virtuoso.
In genere fino ai 10 millisecondi la maggior parte delle persone non dovrebbe avere problemi, come detto in precedenza la latenza diventa insostenibile intorno ai 30 ms.

TIPS & TRICKS PER LA LATENZA
Alcuni esempi pratici e consigli per l'impostazione della latenza.

Se dobbiamo fare streaming di campioni da un Hard disk con software tipo Kontact, Halion o altri campionatori, avere un disco rigido con tempi di accesso ai dati molto ridotti ci aiuterà a diminuire la sensazione di ritardo in fase di esecuzione.

Durante la normale riproduzione o il Mixdown di un progetto, la latenza influisce solo sul tempo che intercorre dalla pressione del tasto play alla partenza effettiva della riproduzione del nostro file, in questo caso anche 100 millisecondi di divario non sono particolarmente significanti per un ascoltatore.

Durante una fase di Pre-mastering (con software tipo Wavelab ad esempio), non occorre lavorare con basse latenze in quanto è poco percepibile il ritardo che abbiamo tra la modifica di un parametro e la sua trasposizione in audio.

Quando si utilizza un controller MIDI esterno una latenza bassa è l'ideale per il controllo di parametri che necessitano di una risposta in tempo reale come ad esempio l'apertura di un filtro o la registrazione di un'automazione.

Durante la fase di monitoraggio (ad esempio in registrazione) se non possiamo usare un sistema 'Zero Latency' possiamo ottenere comunque ottimi risultati avendo un valore di latenza intorno ai 23 millisecondi.

LA MIGLIORE IMPOSTAZIONE
A questo punto, come faccio a sapere qual'è la migliore impostazione per il mio sistema?

La questione è abbastanza complessa ma riassunta in breve può essere schematizzata in questo modo: Se utilizziamo principalmente softsynth o se registriamo una chitarra, una latenza di 6 ms (256 campioni a 44.1kHz) può essere accettabile, possiamo poi cercare di raddoppiare il buffer a 512 campioni e verificare che il sistema non produca strani clicks e glitches, in questo caso possiamo mantenere alto questo valore per dare più respiro alla CPU in caso di utilizzo di più effetti o softsynth.

Qualunque sia il valore scelto per la latenza, è possibile che vada ritoccato a ribasso nel caso in cui s'intenda registrare una voce.

Molti musicisti usano un approccio in due fasi, una bassa latenza durante la fase di registrazione audio e una più modesta per l'uso di un softsynth, la riproduzione e il mixdown, in questo modo si possono aggiungere altri plug-in e non incorrere in spiacevoli risultati sonori.

Fonte per l'articolo:
Wikipedia
SoundOnSound
Dispense varie di corsi audio fatti in una vita precedente

Articolo a cura di:
Takeaweb, Webdeveloper
Takeaweb

Webdeveloper
Torino


Commenti

Autenticati per lasciare un commento.

Non ci sono commenti.

Richiedi Preventivo

Devi realizzare o promuovere un sito web, ideare l'immagine coordinata della tua azienda, sviluppare un piano di comunicazione integrata?

Richiedi un preventivo

ricevi i preventivi gratis e decidi senza impegno


AI Festival