Comprendere e gestire la latenza in/out

Comprendere e gestire la latenza in/out

7 Agosto 2009 Off Di admin

In ambito Computer Music, per LATENZA si intende il ritardo che intercorre tra la generazione di un evento (sia esso la pressione di un tasto sulla tastiera o l’emissione di un suono vocale verso un microfono) e la riproduzione di quest’ultimo attraverso il sistema di monitoring in uso (casse acustiche o cuffie).

Tale evento si presume abbia luogo all’interno di un sistema di hard-disk recording, oggi – nella sua forma più semplice e comune – rappresentato da un PC dotato di scheda audio, le cui risorse (BAIOS, altrimenti dette INs, OUTs, DSP oppure, volendo esplicitare l’acronimo, Basic Input Output System) siano a disposizione di un sequencer software (es. Cubase).

 

 

E’ bene chiarire che la LATENZA non è legata alla difficoltà del percorso del segnale lungo i cavi, piuttosto, essa è gestita dal driver ASIO, compilato dalle rispettive case madri costruttrici di schede audio, secondo le specifiche e attraverso la concessione dell’SDK di Steinberg.

 

Tecnicamente cosa succede?

LATENZA = tempo impiegato dalla CPU per leggere i samples del buffer. Essa è inoltre legata alla frequenza dei campioni, cioè, tanto maggiori saranno i campioni per secondo tanto minore sarà il risultato della stessa.

N.° Operazioni che svolge la CPU = freq./ grandezza del buffer

cioè

frequenza

Grandezza buffer

Operazioni CPU al sec.

44.100

512

86,1328125

48.000

512

93,75


Calcoliamo la Latenza:

Latenza = (Buffer X 1 sec)/n. samples


Esempio per 1 sec. di buffer della grandezza di 512:

buffer

Frequenza (hz)

LATENZA (ms)

512

44.100

11,60998

512

48.000

10,66667

512

96.000

5,333333

La Latenza “zero” è un sogno?

Allo stato attuale – utilizzando gli ultimi driver ASIO 2 – non è possibile raggiungere una latenza nulla, sebbene un “ritardo” che si attesti tra 5ms e 10ms (come somma – si badi bene – della latenza in entrata ed in uscita) sia “percepito” come nullo dalle nostre orecchie.

 

Cosa ci riserva il futuro?

Il problema della latenza, spero sia ormai evidente, risiede – come del resto accade nella gestione del flusso di dati a cui accedono le memorie volatili – nell’impossibilità di gestire il flusso audio senza servirsi di un buffer di sicurezza.

Sempre facendo riferimento al parallelismo con le RAM, la prospettiva che ci riservano le nuove memorie DDR3 è senz’altro favorevole proprio per l’abbandono del controllo delle RAM da parte del chipset a favore del processore: un cambiamento in questa direzione rende del tutto superflui i fattori di latenza tanto ricercati nelle DDR2 (CAS, LAS, etc) e lo stesso dovrebbe verificarsi in ambito computer music, quando, con l’avvento della tecnologia audio sviluppata da Miscrosoft per Windows Vista si potrà veicolare il flusso audio direttamente verso la CPU senza – o con il minimo – intervento da parte del driver.

Questa tecnologia si chiama WaveRT e promette uno streaming audio in tempo reale.

Non ci resta che aspettare!

Letteratura

WaveRT: A Wave Port Driver for Real-Time Audio Streaming

http://www.microsoft.com/whdc/device/audio/wavertport.mspx