Notebook per suonare live!

  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

29-07-10 16.19

Sergio_Bertani ha scritto:
Sì sì, sono d'accordo, ma io infatti dicevo che le cose cambiano sottintendendo anche il discorso flusso dati audio. Scusa l'avevo dato per scontato.

Il concetto e' questo: non ci sono differenze di latenza tra una scheda motu ultralite mk III da 1000 euro usb 2 e una transit m- audio usb 1 da 70 euro, almeno non riducibili al solo fatto che una e' usb 2 e l'altra no, soprattutto nel caso di utilizzo di soli vsti.
Il tempo di latenza dovuto al semplice flusso dei dati tra le schede e il computer e' completamente ininfluente.
Anche una soundblaster interna e' in grado di arrivare, con i drivers asio4all, a 4/5 ms. Il problema e' lavorarci, a latenze basse, e questo e' dovuto a come sono scritti i drivers e alle caratteristiche del pc.
Se la transit avesse 8 ingressi, non riuscirebbe a gestire il flusso audio in ingresso di tutti i canali, ma la sua latenza non ne risentirebbe affatto
Edited 29 Lug. 2010 14:20

29-07-10 17.34

@ barbetta57
Sergio_Bertani ha scritto:
Sì sì, sono d'accordo, ma io infatti dicevo che le cose cambiano sottintendendo anche il discorso flusso dati audio. Scusa l'avevo dato per scontato.

Il concetto e' questo: non ci sono differenze di latenza tra una scheda motu ultralite mk III da 1000 euro usb 2 e una transit m- audio usb 1 da 70 euro, almeno non riducibili al solo fatto che una e' usb 2 e l'altra no, soprattutto nel caso di utilizzo di soli vsti.
Il tempo di latenza dovuto al semplice flusso dei dati tra le schede e il computer e' completamente ininfluente.
Anche una soundblaster interna e' in grado di arrivare, con i drivers asio4all, a 4/5 ms. Il problema e' lavorarci, a latenze basse, e questo e' dovuto a come sono scritti i drivers e alle caratteristiche del pc.
Se la transit avesse 8 ingressi, non riuscirebbe a gestire il flusso audio in ingresso di tutti i canali, ma la sua latenza non ne risentirebbe affatto
Edited 29 Lug. 2010 14:20
Sì sì ci siamo capiti, intendevamo piu o meno la stessa cosa.

Sintetizzando, le prestazioni tra usb 1 e 2 cambiano quanta più mole di dati passa attraverso l'usb, quindi ad esempio con presenza di importante flusso audio (e non midi), magari ad alto bitrate/sampling freq e con effetti in direct monitoring.

Che però è in gran parte come uso io una scheda audio, quindi ad esempio per me, le cose cambiano :-)
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

29-07-10 17.47

no, non è ancora chiaro: se tu fai passare per la tua transit 50 tracce audio con 10 riverberi a convoluzione e altre 20 istanze di vst, e contemporaneamente entri con una chitarra elettrica con guitar rig, o fai uscire una sola traccia audio, la latenza è sempre quella. solo che nel primo caso il computer non ce la fa a reggerla, semplicemente perchè la cpu non regge il carico di lavoro. a me par di capire che tu usi la scheda dal vivo per suonarci i vst: che tu lo faccia con una scheda firewire, usb 2, o qualunque altra, il riusultato non cambia. la differenza la fa il processore. potresti avere una lievissima differenza tra tipologie di scheda, dell'ordine di 1/2 ms, forse. la frequenza di campionamento, il numero di vst e plugins impiegati, il numero di tracce, possono essere infiniti: quello che esce è un segnale stereo e basta. (nel tuo caso, due coppie mi pare, ma non cambia nulla)

29-07-10 17.56

@ barbetta57
no, non è ancora chiaro: se tu fai passare per la tua transit 50 tracce audio con 10 riverberi a convoluzione e altre 20 istanze di vst, e contemporaneamente entri con una chitarra elettrica con guitar rig, o fai uscire una sola traccia audio, la latenza è sempre quella. solo che nel primo caso il computer non ce la fa a reggerla, semplicemente perchè la cpu non regge il carico di lavoro. a me par di capire che tu usi la scheda dal vivo per suonarci i vst: che tu lo faccia con una scheda firewire, usb 2, o qualunque altra, il riusultato non cambia. la differenza la fa il processore. potresti avere una lievissima differenza tra tipologie di scheda, dell'ordine di 1/2 ms, forse. la frequenza di campionamento, il numero di vst e plugins impiegati, il numero di tracce, possono essere infiniti: quello che esce è un segnale stereo e basta. (nel tuo caso, due coppie mi pare, ma non cambia nulla)
No mi sa che tu non hai capito quello che volevo dire, io non uso la scheda solo per suonare vst, ma anche per entrarci in audio e processare l'audio in entrata (che sia il theremin, la clavietta o quant'altro).

Allora, l'audio entra nella scheda, viene convertito e passa dall'usb, quindi già cambia se lo converto in 44/16 o in 96/24 (passa più del quadruplo di mole dati dall'usb), poi viene processato dal pc (e allora la differenza la fa cpu, ram e hardware generale), poi deve di nuovo uscire passando da usb ed essere convertito da digitale ad analogico, magari l'audio esce in 3 o 4 canali perchè ho anche il click. Quindi di mole dati ne passa parecchia dal collo dell'usb e tra 1 e 2 la cosa cambia. Testato personalmente.
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

29-07-10 19.17

Sergio_Bertani ha scritto:
Testato personalmente.

mi spiace, la prova che hai fatto tu è semplicemente aumentare la risoluzione del progetto.
empiricamente, poniamo di lavorare con una frequenza di campionamento di 44.100 campioni e un buffer di 256 campioni;
il convertitore della scheda audio campiona 44.100 volte al secondo il segnale in ingresso e lo spedisce al pc con una velocità X (a seconda del tipo di connessione). in arrivo al pc, questi dati vengono processati a pacchetti di 256 campioni, per cui il buffer di memoria viene svuotato e riempito all'incirca 172 volte (44.100/256) e quindi in un secondo ne passano 172, per cui la latenza è di 1000/172 cioè circa 6 ms. il valore è relativo allo stadio di ingresso, quindi se usi un plugin in tempo reale devi sommarci il tempo di latenza del plugin stesso e quello dovuto alla conversione in uscita. questo è un metodo grossolano ma dà un'idea dei valori in campo.
se invece di lavorare a 44.100 lavori a 96, la proporzione cambia, e i pacchetti da far transitare in un secondo diventano 375, ed ecco che ogni buffer impiega 1000/375, circa 3 ms, indipendentemente dal fatto che un campione sia descritto con una parola di 16, 24 0 32 bit. naturalmente, maggiore è il numero di bit, maggiore è il peso di questi 256 campioni che occupano il buffer e maggiore è lo sforzo della cpu.
la velocità di trsferimento tra la scheda e il pc non è cambiata, ma i dati sono di più per cui il trasferimento sarà più lento, nel caso di una risoluzione maggiore. il sistema del buffer è stato inventato proprio per evitare che ci siano buchi nel trastefimento dei dati. se la scheda accetta il buffer, indipendentemente dal fatto che sia usb firewire o altro è in grado di trasferire i dati. per avere la prova che effettivamente la latenza scende, dovresti usare due schede, una usb1 e una usb 2 con lo stesso progetto.



Edited 29 Lug. 2010 17:19

29-07-10 22.39

@ barbetta57
Sergio_Bertani ha scritto:
Testato personalmente.

mi spiace, la prova che hai fatto tu è semplicemente aumentare la risoluzione del progetto.
empiricamente, poniamo di lavorare con una frequenza di campionamento di 44.100 campioni e un buffer di 256 campioni;
il convertitore della scheda audio campiona 44.100 volte al secondo il segnale in ingresso e lo spedisce al pc con una velocità X (a seconda del tipo di connessione). in arrivo al pc, questi dati vengono processati a pacchetti di 256 campioni, per cui il buffer di memoria viene svuotato e riempito all'incirca 172 volte (44.100/256) e quindi in un secondo ne passano 172, per cui la latenza è di 1000/172 cioè circa 6 ms. il valore è relativo allo stadio di ingresso, quindi se usi un plugin in tempo reale devi sommarci il tempo di latenza del plugin stesso e quello dovuto alla conversione in uscita. questo è un metodo grossolano ma dà un'idea dei valori in campo.
se invece di lavorare a 44.100 lavori a 96, la proporzione cambia, e i pacchetti da far transitare in un secondo diventano 375, ed ecco che ogni buffer impiega 1000/375, circa 3 ms, indipendentemente dal fatto che un campione sia descritto con una parola di 16, 24 0 32 bit. naturalmente, maggiore è il numero di bit, maggiore è il peso di questi 256 campioni che occupano il buffer e maggiore è lo sforzo della cpu.
la velocità di trsferimento tra la scheda e il pc non è cambiata, ma i dati sono di più per cui il trasferimento sarà più lento, nel caso di una risoluzione maggiore. il sistema del buffer è stato inventato proprio per evitare che ci siano buchi nel trastefimento dei dati. se la scheda accetta il buffer, indipendentemente dal fatto che sia usb firewire o altro è in grado di trasferire i dati. per avere la prova che effettivamente la latenza scende, dovresti usare due schede, una usb1 e una usb 2 con lo stesso progetto.



Edited 29 Lug. 2010 17:19
Senti, non so che dire, forse parlo arabo.

Dove ho scritto che ho comparato la velocità di trasferimento semplicemente aumentando la risoluzione? Io ho proprio comparato usb1 e 2 con la stessa risoluzione, come dici tu alla fine, con lo stesso progetto.

E più la risoluzione è alta e più il pacchetto da trasferire attraverso la porta usb in entrata e in uscita è grosso, perciò la velocità dell'usb conta in quel senso. E che diavolo.

A volte l'italiano non è sufficiente proprio...

  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

29-07-10 22.52

ho equivocato. in ogni caso, secondo me, il protocollo usb con la latenza non c'entra un tubo. le mie prove le ho fatte anch'io. vedi il topic che ho aperto in proposito.

30-07-10 03.54

@ barbetta57
ho equivocato. in ogni caso, secondo me, il protocollo usb con la latenza non c'entra un tubo. le mie prove le ho fatte anch'io. vedi il topic che ho aperto in proposito.
sì sì ho letto, ma latenza continua ad essere un concetto molto vago. La latenza del pilotaggio di un vsti non è quella di un processamento di una sorgente audio multicanale ad alta risoluzione in entrata. emo
Edited 30 Lug. 2010 1:54
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

30-07-10 08.47

la latenza non è un concetto vago, sono numeri e sono scritti sul programma. postami i tuoi. oppure bisognerebbe pensare che il tempo che ci mettono i dati a passare in un metro di cavo è apprezzabile rispetto a quello che ci mette la cpu ad elaborare il segnale audio.
mi piacerebbe che qualcuno che ne sa di più intervenisse, così da capire anch'io, ma facciamo un altro esempio: tu adoperi due canali in ingresso e quattro in uscita e i tuoi convertitori lavorano a 96Khz/24 bit (a parte il fatto che nessun vsti lavora a quella risoluzione, e quindi tu stai inutilmente forzando la cpu a ricalcolare gli eventuali campioni che adoperi e i synt che stai usando)
ogni secondo di audio sono 96000 campioni x 24 bit, cioè 2.300.000 bit al secondo per 6 (tre coppie) circa 14 milioni di bit/secondo. lavelocità dell'usb 1.1 è 12 milioni di bit al secondo, quindi, sia pur di poco, l'usb 1.1 non ce la fa a reggere 3 coppie di canali in ingresso/uscita: un ingresso e un'uscita stereo li regge benissimo, non è una questione di tempo che ci mettono ad attraversare il cavo, ma una questione di quantità di dati per secondo. se hai mai provato a riversare i dati da una videocamera usb, è un pò quello che può succedere, il video va a scatti, il segnale non passa con sufficiente velocità da avere un flusso continuo per le carenze di architettura del mezzo.
6 canali a 44 khz/24 bit fanno 6.000.000 di bit/sec, che è la metà della capacità dell'usb1.1 e a 16 ancora meno, ergo la usb1.1 è perfettamente in grado di lavorare in multicanale fino a certi livelli a risoluzioni standard ed anche, limitando ingressi e uscite, a risoluzioni alte. sicuramente, nell'usb 2.0 il segnale passa ad una velocità che è
40 volte superiore, ma una volta che ha attraversato il metro di cavo i dati arrivano al convertitore, e questo sempre 96.000 campioni al secondo è in grado di processare. i dati continuano ad arrivare a pacchetti per cui ogni secondo vengono processati x pacchetti e stop. se il passaggio nel cavo non è abbastanza veloce, si creano dei gap fra i pacchetti e quindi si avranno dei buchi durante l'acquisizione/riproduzione, ma questo non cambia la latenza complessiva.

Edited 30 Lug. 2010 6:51

30-07-10 10.37

barbetta57 ha scritto:
la latenza non è un concetto vago, sono numeri e sono scritti sul programma.


Toglimi una curiosità, ma tu sei uno di quelli che quando uno racconta una barzelletta tu la spieghi a tutti gli altri? Sai quando si dice "leggere tra le righe"...? emo
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

30-07-10 11.20

sono piuttosto prolisso, come si sarò notato.
comunque veramente mi piacerebbe che qualcuno effettivamente ferrato spiegasse per bene la questione.
io non ho grandi basi teoriche ma ci ragiono sopra, e aggiungo anche un'altra cosa:
quando si parla di "velocità" della connessione, si indica la quantità di bit/sec che questa è in grado di portare, ma questa non è una misura di spazio, e quindi neanche di tempo. significa solo che in u secondo la connessione è un grado di sopportare il passaggio di tot dati
quanto tempo ci mettono questi dati a passare da un estremo all'altro del cavo, è un dato diverso: questo sì potrebbe generare latenza, perchè stiamo parlando di tempo, non di quantità di dati.
essenzialmente questi dati sono elettroni, quindi la velocità di trasmissione lungo il cavo è paragonabile a quella della corrente elettrica (ho letto un pò in giro e chi sa mi corregga, ma si dovrebbe avvicinare alla metà o quasi della velocità della luce, ci sono un sacco ci variabili), quindi se il cavo è lungo un metro o 5, non cambia molto all'atto pratico. significa solo che ai convertitori arrivano, nello stesso lasso di tempo nemmeno misurabile, 12mbit o 480.
arrivati alla scheda, questi dati, scomposti in pacchetti, vengono processati ad una velocità che è incomparabilmente inferiore dai convertitori e quindi si mettono in coda, a pacchetti, in attesa del loro turno. come viene gestito il flusso dei pacchetti attraverso i convertitori viene stabilito dai drivers della scheda, che decidono quando inviare cosa a chi (ci sono più convertitori e quindi i pacchetti vanno indirizzati) questo tipo di istruzione, se scritto male, genera latenza.
ho preso spunto dalla discussione per dare una veste (per me) razionale a cose che sapevo ma non mi sono mai dato la pena di descrivere, però vorrei davvero che qualcuno, dotato di basi più solide delle mie, aggiungesse le sue considerazioni


Edited 30 Lug. 2010 9:21

30-07-10 12.01

barbetta57 ha scritto:
quanto tempo ci mettono questi dati a passare da un estremo all'altro del cavo, è un dato diverso: questo sì potrebbe generare latenza, perchè stiamo parlando di tempo, non di quantità di dati.
essenzialmente questi dati sono elettroni, quindi la velocità di trasmissione lungo il cavo è paragonabile a quella della corrente elettrica (ho letto un pò in giro e chi sa mi corregga, ma si dovrebbe avvicinare alla metà o quasi della velocità della luce, ci sono un sacco ci variabili), quindi se il cavo è lungo un metro o 5, non cambia molto all'atto pratico. significa solo che ai convertitori arrivano, nello stesso lasso di tempo nemmeno misurabile, 12mbit o 480.


La teoria non fa una piega, ma la realtà è tutt'altra, infatti primo, consigliano sempre di usare cavi molto corti per i collegamenti delle periferiche usb, secondo, in caso di un cavo lungo esistono amplificatori di segnale per ovviare al problema che quindi in realtà si genera. Ad esempio quando lavoro in studio foto i banchi ottici stanno lontani dai mac e il cavo usb è lungo e fornito di uno di questi amplificatori per fare arrivare i dati.

Ma il discorso non è questo. A mio avviso quando dici:

barbetta57 ha scritto:
quando si parla di "velocità" della connessione, si indica la quantità di bit/sec che questa è in grado di portare, ma questa non è una misura di spazio, e quindi neanche di tempo. significa solo che in u secondo la connessione è un grado di sopportare il passaggio di tot dati


è proprio lì che sbagli. Esempio banale. C'è una porta stretta e ci devono passare molte persone, ci metteranno molto di più che passando da un cancello larghissimo. la velocità della connessione è questo: la quantità di dati che riescono a passare attraverso di essa in un'unità di tempo. Quindi maggiore è la mole di dati (ed è l'ultima volta che mi ripeto) e maggiore è il tempo che ci mettono a passare. Ora su quantità di dati inferiori al limite della porta la differenza tra usb 1 e 2 non si nota (per esempio pilotaggio midi o registrazione di pochi canali a bassa risoluzione), ma se aumento la quantità di dati il collo di bottiglia comincia a farsi sentire. Certo che c'è anche il limite di processamento della cpu e compagnia bella, ma non è il discorso. Con grosse moli di lavoro e una "porta stretta" vuol dire che uso di più il buffer della scheda e quindi che i dati aspettano di più per passare.

barbetta57 ha scritto:
vorrei davvero che qualcuno, dotato di basi più solide delle mie, aggiungesse le sue considerazioni


Il fatto è che non gliene frega una fava a nessuno ahahahahah emo
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

30-07-10 12.18

la porta stretta è all'altro capo della connessione. i convertitori sono la porta stretta.
inoltre, il topic ha superato le 1000 letture, una cinquantina sono mie e tue, vogliamo mettere, un centinaio forse sono quelli che hanno letto prima che il discorso arrivasse qui, quindi non è vero neanche che non gliene frega niente a nessuno.
da te non vedo ragionamenti ma solo asserzioni alla "ipse dixit". i miei saranno anche sbagliati, ma tento di dimostrare quello che dico
Edited 30 Lug. 2010 10:25

30-07-10 13.19

@ barbetta57
la porta stretta è all'altro capo della connessione. i convertitori sono la porta stretta.
inoltre, il topic ha superato le 1000 letture, una cinquantina sono mie e tue, vogliamo mettere, un centinaio forse sono quelli che hanno letto prima che il discorso arrivasse qui, quindi non è vero neanche che non gliene frega niente a nessuno.
da te non vedo ragionamenti ma solo asserzioni alla "ipse dixit". i miei saranno anche sbagliati, ma tento di dimostrare quello che dico
Edited 30 Lug. 2010 10:25
Niente ci rinuncio. emo

30-07-10 13.26

una curiosità, Barbetta, hai mai studiato ingegneria?
  • barbetta57
  • Membro: Guru
  • Risp: 6751
  • Loc: Padova
  • Thanks: 719  

30-07-10 13.48

no, è per quello che dico che mi mancano le basi.
Edited 30 Lug. 2010 11:48
  • trakker71
  • Membro: Guest
  • Risp: 1
  • Loc: Pisa
  • Thanks: 0  

26-01-11 02.26

ciao a tutti ,spero qualquno possa rispondermi , ho acquistato nua scheda audio esterna (echo audiofire 2 ),la devo collegare a un portatile che a solo porte usb , poiche la scheda audiofire2 ha solo collegamento firewire, vorrei sapere se con un riduttore a usb risolvo il problema ,oppure la qualita audio subisce delle variazioni ,grazie aspetto vostri consigli!