Spiego, a chi ha la pazienza di leggere,
a cosa è dovuta la latenza, così capiamo
che non è un limite, ma una peculiarità:
Coloro che utilizzano in maniera approfondita
VST e ASIO, sanno bene che la parola chiave è BUFFER:
architetture come quelle di kronos, ASIO ed altri,
(non c'entra che sia software o hardware)
utilizzano un buffer, cioè un'area di memoria che contiene n samples;
il convertitore D/A in uscita non riceve un sample alla volta,
ma legge blocchi di N samples, N prefissato,
di volta in volta contenuti in questo buffer.
Per riprodurre N sample impiega un tempo T,
pari al tempo della latenza.
Il processore, disco, memoria etc, cioè tutto
l'apparato di generazione digitale, ha esattamente T millisecondi per riempire
di nuovo questo buffer, prima che sia prelevato dal convertitore D/A.
Se ad esempio il buffer è costituito da 512 sample,
e la frequenza del DAC è 48 KHz,
la latenza è 512/48=10,6 ms circa.
Questo è esattamente il ritardo, quindi, di ciascun evento,
siano essi 1 o 200 in contemporanea.
I ritardi non si accumulano, in quanto tutto dovrà essere generato
entro i T millisecondi impiegati per suonare il buffer attuale.
Più piccolo è il buffer, minore è la latenza;
con un buffer di 64 samples avremmo una latenza di poco più di 1 ms;
perchè non si fa di 64 samples allora ?
perchè il processore e tutto il contorno avrebbero 1 ms per riempire tale buffer;
macchine come kronos che fanno non una ma 3000 cose contemporaneamente,
non ce la farebbero; ricordiamo che si devono gestire 9 motori di sintesi
(+ quelli eventualmente custom),
gestire karma, il sequencer, lo streaming da SSD,
decine di effetti in contemporanea etc.
Quindi si è scelta una dimensione del buffer con latenza di 8 ms che
mantiene una buona suonabilità, nel frattempo consentendo
al sistema di gestire il tutto in tranquillità.
E se non ce la dovesse fare in 8 ms ?
Nei computer il disastro, scricchiolii, rumori e quant'altro,
cioè il buffer è stato sottoposto al DAC prima che fosse riempito
(tecnicamente, buffer underrun).
Nel caso di kronos, il software gestisce ciò in maniera ottimale
limitando la polifonia; quando il sistema si sovraccarica non vengono
più generate note (così come avviene nelle altre tastiere quando si raggiunge la max polifonia)
e il buffer viene comunque riempito correttamente prima di essere mandato al DAC.
Niente scricchiolii e dropouts, quindi, tutto viene suonato senza interruzioni,
entro il limite della polifonia consentita, e nella latenza prevista.
Per questo, e altri motivi, banalizzare kronos considerandolo nient'altro che un pc+vst proprietari
è molto più che riduttivo.
Integra non ha un SSD, ha una architettura molto più lineare,
ha motori di sintesi meno eterogenei,
per questo può permettersi di utilizzare un buffer più piccolo.
O forse implementa un buffer a dimensione
variabile a seconda di quanto è stressato il processore.
(infatti la latenza appare variabile).
In futuro si potrà fare di meglio ?
certamente, MA, se, come succederà,
le nuove macchine gestiranno motori ancora più complessi,
effetti più sofisticati, eccetera, non è detto che
anche utilizzando hardware più potente si potranno utilizzare
buffer,e quindi latenze, più piccole.
Comunque, per ottenere latenze più piccole il processore dovrà
essere più impegnato, ma a fare meno cose, con conseguente
limitazione della macchina: conviene ?
Edited 29 Nov. 2012 16:16