Cercando di semplificare e non andare oltre le mie competenze di informatico musicale, ci sono vari aspetti che influenzano la capacità di un computer di lavorare a bassa latenza, rendendo un sistema più o meno veloce nel riprodurre il suono di strumenti virtuali tramite tastiere MIDI o degli effetti in ascolto – realtime monitoring – a voci e strumenti che volete nelle cuffie mentre registrate. La nostra latenza è importante anche da compensare quando ci sono da integrare routing di segnale con HW esterno all’interno del nostro workflow.
La latenza si misura in millisecondi, ed è dipendente da vari fattori che andiamo ad esaminare.
LA SCHEDA AUDIO
Primo fisicamente nella catena della latenza è il tempo fisicamente impiegato dall’interfaccia nella conversione da analogico a digitale, ma è praticaamente irrilevante (meno di 1ms); molto più importante è la qualità dei driver della vostra scheda audio, su bus USB questo valore arriva anche intorno a 70ms a 512 di buffer con schede audio lexicon, line6 o focusrite, mentre una RME allo stesso buffer richiede 24; alcuni produttori usano Thunderbolt come interfaccia (che ha una latenza minore per la natura del protocollo stesso) per migliorare drasticamente questi valori.
LA BUFFER SIZE
Questo fattore è dove la nostra scelta e quindi “tolleranza” intervengono; si tratta della quantità di sample che decidiamo di lasciare alla cpu prima di chiedergli la prossima parte di sequenza; solitamente tanto maggiore questo valore, più potrà ottimizzare i vari processi e lavorare quindi a più tracce in contemporanea senza produrre errori; quando una macchina non riesce a processare in tempo il segnale audio per problemi di buffer size l’elaborazione non farà tempo a finire e si produrranno artefatti audio o la DAW mostrerà errore di cpu overload e si fermerà. Se nel nostro lavoro non abbiamo nessun bisogno di “monitoring” di sorgenti esterne, potremo settarla al valore massimo senza problemi, anche se non tutti i computer traggono beneficio allo stesso modo da questo. La nostra possibilità di abbassare la latenza dipenderà dalla complessità del nostro progetto in relazione alle prestazioni realtime del nostro computer.
HARDWARE PER BASSA LATENZA
Maggiore è la buffer size che impostiamo, più l’elaborazione sarà simile ad un render e si ridurrà la componente “realtime” del problema. Facciamo un esempio: se devo costruire un palazzo di 10 piani, completarli uno alla volta chiamando da capo operai stucchisti, imbianchini piastrellisti e montando gli infissi sarà molto meno efficiente rispetto ad eseguirli in gruppo facendo tutto insieme una fase alla volta. E seguendo questo esempio, ci saranno macchinari industriali capaci di lavorare a quantità grandi di materiali(dati), ma più lenti e inadatti se si lavora a piccole.
Questo tipo di differenze si ritrovano in maniera simile nelle diverse architetture dei nostri computer, ci sono CPU più “piccole” fisicamente, meno potenti, che magari potranno eseguire meno tracce con plugins AA in parallelo ma hanno tempi di accesso più bassi; anche la configurazione/qualità delle memorie influisce in tutto questo. Discuto questi problemi spesso su questo sito ad esempio qui in riferimento alle due identità dei sistemi Alder Lake o questo articolo in inglese.
Per esempio abbiamo visto dato lo stesso progetto di test che una cpu x299 10980xe da 18 core riesce ad eseguirlo solo a 1024 di buffer, un i5 12400f riesce anche a 256, ma lo stesso i5 non riesce comunque ad aggiungere più tracce anzi per assurdo si blocca passando esso stesso a 1024 – le due cpu hanno la stessa forza bruta, ma il 12400f è infinitamente più adatto a lavorare a bassi buffer dove la cpu “grossa” non può arrivare.
Uno strumento che ci può dire qualcosa di questo aspetto sulla nostra macchina sono i programmi che calcolano la latenza della memoria come Intel MLC o Aida64 e i test dei videogiochi, che sono anche essi applicazioni fortemente realtime.
I DISTURBATORI: LA DPC LATENCY E I PROCESSI IN BACKGROUND
Un ultimo fattore nel problema è diciamo quello “ottimizzazione software” dipende per esempio dai problemi DPC latency del pc, concetto complesso dove in realtà entrano anche la qualità del driver audio descritta prima ma si uniscono tutti gli altri driver degli altri dispositivi nel sistema che possono momentaneamente “bloccare” la CPU e minore è la buffer size maggiore la probabilità che questo blocco possa creare un errore di riproduzione. Questo problema sorge per errori di scrittura del codice stesso o conflitti di allocazione di risorse causati da scrittura erronea del codice ACPI della macchina.
articoli di riferimento:
https://legacy.presonus.com/learn/technical-articles/Digital-Audio-Latency-Explained
https://www.kailuamusicschool.com/tech/round-trip-latency-roundup/