Chiarimenti latenza

  • stemed
  • Membro: Guest
  • Risp: 3
  • Loc: Ravenna
  • Thanks: 0  

28-08-10 03.06

ciao a tutti, sono nuovo del forum, è da relativamente poco che mi sto interessando di computer&musica, mi sono iscritto perchè vorrei da utenti più esperti qualche chiarimento sulla latenza..
utilizzo Ableton live, una scheda audio usb esi u46xl, windows 7.
allora ho settato le impostazioni della latenza nelle preferenze:

mi potete spiegare di preciso cosa significano rispettivamente "Input Latency", "Output Latency" e "Driver Error Compensation?"
allora, la mia "overall latency" sarebbe 12.6 ms, ciò significa che se suono tenendo "monitor in"-cioè se ascolto il suono processato dalla scheda audio e dal pc- il suono mi arriva in ritardo di 12 ms? Ho fatto alcune prove suonando in questo modo ed in effetti il ritardo è percepibile, anche se non moltissimo, però da fastidio.

Vorrei sapere, in fase di registrazione, come si comporta il software? cioè io suono, il risultato mi arriva 12 ms più tardi (più o meno), dopo quanti ms dal mio input viene invece registrato il suono? il programma sposta tutto indietro di 12 ms?
so che registrando con il direct monitoring della scheda audio ( quindi ascoltando il suono non processato, quindi latenza zero) il problema sarebbe in parte ovviato, solamente che:

1.non sarebbe possibile registrare ascoltando eventuali effetti del software
2.la questione si riproporrebbe utilizzando dei softsynth, giusto?

si perchè comunque in tal caso non esisterà latenza di conversione a/d (=Input Latency?) ma comunque si quella d/a (=Output Latency?)
pensate che una latenza come la mia possa essere sensibilmente ridotta con l'acquisto di una migliore scheda audio?

In sostanza il succo del problema è che vorrei capire come funziona tutto l'ambaradàn per potermi impostare per suonare con la minor latenza possibile e registrare più a tempo possibile..

se siete stati così pazienti da seguirmi nella masturbazione, Illuminatemi!
  • clouseau57
  • Membro: Supporter
  • Risp: 10795
  • Loc: Napoli
  • Thanks: 592  

28-08-10 03.45

Prova , gradualmente , ad abbassare il buffer size !
emo
  • ziokiller
  • Membro: Supporter
  • Risp: 9397
  • Loc: Treviso
  • Thanks: 1252  

28-08-10 10.32

La latenza è un calcolo ben preciso. Se la frequenza di campionamento è 44.1 KHz, vuol dire che l'audio corre a 44100 campioni al secondo, cioè in un secondo vengono riprodotti o registrati 44100 campioni. Se il buffersize è impostato, come si vede nella tua istantanea, a 128 campioni, vuol dire che la latenza è 128 / 44100 = 2,9 ms. E' una semplice proporzione: in altre parole, se per fare 1000 millisecondi ci vogliono 44100 campioni, allora con 128 campioni si fanno 2,9 ms.

La latenza può quindi essere ridotta riducendo il numero di campioni del buffer oppure alzando la frequenza di campionamento.

Ma le prestazioni sono esclusivamente legate alla potenza di calcolo della CPU: se il tuo computer è in grado di processare l'audio in quei 2,9 ms allora va tutto bene; se invece riduci la latenza, per esempio mettendo 64 campioni di buffer, ovvero 1,4 ms, può darsi che il tuo computer non riesca a fare quello che deve fare in appena 1,4 ms e cominci a sentire i classici rumorini di click e pop vari.

Quindi per ridurre la latenza non è necessario cambiare la scheda audio, sempreché questa sia di buona qualità, ma bisogna cambiare la CPU con una più veloce.

La compensazione dell'errore del drive e la latenza totale sono due valori che calcola il software, nel tuo caso Ableton Live, ma non sono valori assoluti.

Quanto ai valori di input e output, l'audio in ingresso alla scheda viene registrato istantaneamente se questo non subisce alcun processing. Se invece registri applicando degli effetti, il programma stesso dovrebbe "compensare" anticipando l'audio dello stesso tempo calcolato per la latenza d'ingresso.

Puoi fare una prova: metti il buffer a 2048 campioni, dovresti avere una latenza di 46,4 ms. Prova a registrare (col direct monitoring, altrimenti non capisci niente) e dopo vai in Play. L'audio registrato dovrebbe trovarsi perfettamente a tempo, anche se il playback parte con un leggero ritardo.

  • clouseau57
  • Membro: Supporter
  • Risp: 10795
  • Loc: Napoli
  • Thanks: 592  

28-08-10 15.22

ziokiller ha scritto:
La latenza è un calcolo ben preciso. Se la frequenza di campionamento è 44.1 KHz, vuol dire che l'audio corre a 44100 campioni al secondo, cioè in un secondo vengono riprodotti o registrati 44100 campioni. Se il buffersize è impostato, come si vede nella tua istantanea, a 128 campioni, vuol dire che la latenza è 128 / 44100 = 2,9 ms. E' una semplice proporzione: in altre parole, se per fare 1000 millisecondi ci vogliono 44100 campioni, allora con 128 campioni si fanno 2,9 ms.

La latenza può quindi essere ridotta riducendo il numero di campioni del buffer oppure alzando la frequenza di campionamento.

Ma le prestazioni sono esclusivamente legate alla potenza di calcolo della CPU: se il tuo computer è in grado di processare l'audio in quei 2,9 ms allora va tutto bene; se invece riduci la latenza, per esempio mettendo 64 campioni di buffer, ovvero 1,4 ms, può darsi che il tuo computer non riesca a fare quello che deve fare in appena 1,4 ms e cominci a sentire i classici rumorini di click e pop vari.

Quindi per ridurre la latenza non è necessario cambiare la scheda audio, sempreché questa sia di buona qualità, ma bisogna cambiare la CPU con una più veloce.

La compensazione dell'errore del drive e la latenza totale sono due valori che calcola il software, nel tuo caso Ableton Live, ma non sono valori assoluti.

Quanto ai valori di input e output, l'audio in ingresso alla scheda viene registrato istantaneamente se questo non subisce alcun processing. Se invece registri applicando degli effetti, il programma stesso dovrebbe "compensare" anticipando l'audio dello stesso tempo calcolato per la latenza d'ingresso.

Puoi fare una prova: metti il buffer a 2048 campioni, dovresti avere una latenza di 46,4 ms. Prova a registrare (col direct monitoring, altrimenti non capisci niente) e dopo vai in Play. L'audio registrato dovrebbe trovarsi perfettamente a tempo, anche se il playback parte con un leggero ritardo.

Ecco !
Questa e' una spigazione fatta in modo preciso , che aiuta a capire ( io incluso ) i diversi fattori da cui dipende la latenza.
UN pezzo da conservare !
emo
  • salvafunk
  • Membro: Guru
  • Risp: 5216
  • Loc: Bergamo
  • Thanks: 525  

28-08-10 15.40

@ ziokiller
La latenza è un calcolo ben preciso. Se la frequenza di campionamento è 44.1 KHz, vuol dire che l'audio corre a 44100 campioni al secondo, cioè in un secondo vengono riprodotti o registrati 44100 campioni. Se il buffersize è impostato, come si vede nella tua istantanea, a 128 campioni, vuol dire che la latenza è 128 / 44100 = 2,9 ms. E' una semplice proporzione: in altre parole, se per fare 1000 millisecondi ci vogliono 44100 campioni, allora con 128 campioni si fanno 2,9 ms.

La latenza può quindi essere ridotta riducendo il numero di campioni del buffer oppure alzando la frequenza di campionamento.

Ma le prestazioni sono esclusivamente legate alla potenza di calcolo della CPU: se il tuo computer è in grado di processare l'audio in quei 2,9 ms allora va tutto bene; se invece riduci la latenza, per esempio mettendo 64 campioni di buffer, ovvero 1,4 ms, può darsi che il tuo computer non riesca a fare quello che deve fare in appena 1,4 ms e cominci a sentire i classici rumorini di click e pop vari.

Quindi per ridurre la latenza non è necessario cambiare la scheda audio, sempreché questa sia di buona qualità, ma bisogna cambiare la CPU con una più veloce.

La compensazione dell'errore del drive e la latenza totale sono due valori che calcola il software, nel tuo caso Ableton Live, ma non sono valori assoluti.

Quanto ai valori di input e output, l'audio in ingresso alla scheda viene registrato istantaneamente se questo non subisce alcun processing. Se invece registri applicando degli effetti, il programma stesso dovrebbe "compensare" anticipando l'audio dello stesso tempo calcolato per la latenza d'ingresso.

Puoi fare una prova: metti il buffer a 2048 campioni, dovresti avere una latenza di 46,4 ms. Prova a registrare (col direct monitoring, altrimenti non capisci niente) e dopo vai in Play. L'audio registrato dovrebbe trovarsi perfettamente a tempo, anche se il playback parte con un leggero ritardo.

Questa risposta ( insieme a tante altre) dovrebbe essere fatta leggere obbligatoriamente a tutti i nuovi utenti quando si iscrivono nel forum tecnico.

Davvero di rara chiarezza, semplicità e sintesi.

emoemoemo
Edited 28 Ago. 2010 13:41
  • stemed
  • Membro: Guest
  • Risp: 3
  • Loc: Ravenna
  • Thanks: 0  

28-08-10 18.37

grazie ziokiller, spiegazione molto chiara, però mi restano oscure delle cose:

ok, ma quei 6.8 secondi di "driver error compensation", che a quanto ho capito dipendono dalla bontà dei driver asio della scheda, comunque si vanno a sommare ai 2,90*2= 5,60 ms giusto? Perciò la latenza finale che percepisco sono i 12,6 secondi direi.. Non capisco in che senso dici, ziokiller, che non sono valori assoluti..
E poi cosa sono di preciso?emo
penso che un eventuale upgrade di scheda audio andrebbe a ridurre questo valore, e non quello dei 5,6 ms, giusto?

quindi, se si suona monitorando il segnale processato la latenza complessiva percepita è di 12,6 ms
mentre suonando un virtual synth a quanto ammonta? direi che è da sottrarre il tempo della conversione a/d alla latenza di prima.. dico bene?

la prova che mi hai suggerito la farò al più presto, non appena avrò sottomano il pc in questione..
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

28-08-10 19.11

lo strumento virtuale ha solo la latenza di uscita, ovviamente. a questa si deve sommare una certa latenza dovuta ai calcoli che il computer deve fare per il vsti stesso, calcoli che dipendono dalla pesantezza dello stesso
  • stemed
  • Membro: Guest
  • Risp: 3
  • Loc: Ravenna
  • Thanks: 0  

30-08-10 14.58

ok.. per il resto?
  • JoelFan
  • Membro: Expert
  • Risp: 2616
  • Loc: Milano
  • Thanks: 385  

30-08-10 15.07

stemed ha scritto:
ok.. per il resto?


Guarda, La latenza non e' nemmeno esente nei mixer digitali o nelle schede audio in direct monitoring.

In particolare, la latenza totale reale - o come la chiamano gli inglesi "round-trip latency" - e' la somma di vari ritardi lungo il cammino del segnale:
1) I convertitori AD in ingresso. Questi sono a volte praticamente ininfluenti, dipende dalla scheda (non sempre, ad esempio la mia Ultralite MK3 ha aggiunto 2ms rispetto alle precedenti edizioni proprio per dare un buffer in piu' per gli effetti della scheda).
2) ASIO input buffer
3) Il cosiddetto "hidden safety buffer" del driver, che e' un buffer di sicurezza per non perdere lo streaming del segnale.
4) Il software ed i vari effetti/strumenti virtuali.
5) ASIO output buffer
6) I convertitori DA in uscita.

Percio', se vuoi conoscere la vera latenza totale reale, ti conviene usare qualche tool, ad esempio CEntrance, che la misura da un capo all'altro. Latenze totali accettabili possono essere sotto i 15-20ms, ma alcune schede fanno molto meglio.
Per maggiori informazioni vedi qui: http://forum.cockos.com/showthread.php?t=40118

Per quanto riguarda le tue domande specifiche:
-> non uso Live quindi non conosco il parametro specifico "driver error compensation", credo che sia un valore da dire a Live per discorsi di Sync quando si registra mentre si suonano le tracce gia' registrate. Assumo quindi che non abbia influenza nella latenza totale.
-> Quando suoni strumenti virtuali via tastiera MIDI, confermo il Barbetta, non hai latenza audio in input - hai solo quella in output.

Credo comunque che non bisogna farsi troppi problemi. La velocita' del suono nell'aria e' infatti circa un metro al millisecondo, vuoto per pieno. Ricordiamoci che per esempio dal vivo, se metti dei monitor a 3 metri da te hai 3ms di latenza.
  • stemed
  • Membro: Guest
  • Risp: 3
  • Loc: Ravenna
  • Thanks: 0  

30-08-10 22.18

ok grazie mille! I problemi che mi sono posti sono in realtà conseguenti al fatto che con la strumentazione di cui dispongo non sono riuscito ad avere prestazioni soddisfacenti per quanto riguarda la registrazione sincronizzata e il monitoraggio non diretto!
non erano pippe mentali fine a se stesse, è che non conoscendo bene il sistema quando c'è un problema non si capisce cos'è che non funziona..

faccio qualche prova per vedere se mi sarebbe utile un cambio di scheda audio