Beeble, vielleicht ist dein Beitrag einfach missverständlich formuliert oder wir reden aneinander vorbei. Ich versuche mal darauf einzugehen:
Es geht nicht um die Gesamtlatenz, auch nicht über die Latenz des Audiointerface. Es geht um die Latenz dieses Midi over USB Kabels.
Dort gibt es keine Latenz. Latenz entsteht erst wenn die Mididaten verarbeitet werden und natürlich bei der analogen Ausgabe des Sounds eines VSTi über das Audiointerface.
Ok, ich spreche von der Zeit, die zwischen folgenden Zeitpunkten vergeht:
Zeitpunkt A: Ein Eine Midi-Nachricht ist "gerade eben" in einem an den Computer angeschlossenen USB-Gerät/-Interface/-Adapter/-Konverter vollständig angekommen (oder ggf. erzeugt worden).
Zeitpunkt B: Dieselbe Midi-Nachricht steht einem Programm (z.B. Drum-Sampler) im Computer zur Weiterverarbeitung zur Verfügung.
Wenn du andere Zeitpunkte meinst, haben wir aneinander vorbei geredet. Ich denke aber, das sind die interessanten Zeitpunkte, weil das Signal genau dazwischen außerhalb unserer Kontrolle ist, und alles vom Design des USB-Geräts, dem Übertragungsprotokoll und dem Treiber abhängt. Und zwischen den Zeitpunkten gibt es auf jeden Fall eine Latenz.
Vielleicht kannst du ja auch mal genauer schreiben, welche Komponente und welche Verarbeitung du bei der Formulierung "wenn die Mididaten verarbeitet werden" meinst?
Zitat
Eine einfacher 2 Byte langer Midibefehl aus Note on/off hat eine Länge von etwa 800 Microsekunden, der kommt auch am Rechner an wenn er losgeschickt wird, ohne Latenz.
Das sind Zeiten die du sicher nicht einmal messen könntest.
So klingt das für mich nach einem Widerspruch, vermutlich ist es nur unglücklich formuliert?
Hier scheinst du über die Übertragung über ein klassisches Midi-Kabel (mit den runden Steckern) zu reden, richtig? Um die geht es mir nicht mehr, da ich erst ab dem Zeitpunkt gerechnet habe, an dem das Midi-Signal schon vollständig in einem USB-Gerät ist.
Trotzdem der Vollständigkeit halber: Ein Note on/off ist 3 Bytes lang und die Übertragung über ein Midi-Kabel dauert 0,96ms. Die Signalflanken, die du vielleicht meinst, wandern zwar mit Lichtgeschwindigkeit durch das Kabel (ca. 3,3ns pro Meter, das ist tatsächlich vergleichsweise einfach messbar), für die Latenz musst du aber die Übertragungsdauer des gesamten Signals berücksichtigen.
Zitat
Ein USB 1.02 kann ein Byte jede Microsekunde ( ein tausendstel einer Millisekunde) übertragen.
Der einzige Nachteil von dem ach so schnellen USB ist die Tatsache das dieser vom Prozessor verwaltet wird und im Gegensatz zu einer mit eigenem Bus verwalteten RS232 Schnittstelle nicht so oft abgefragt wird.
Bei USB 1 war das etwa eine Abfrage alle 1 ms. Ich weiss nicht ob sich das verbessert hat.
Eben weil USB diesen Abfrage-Takt hat, ist es für die Latenz egal, wie schnell ein einzelnes Byte übertragen werden kann, denn man muss immer erst auf den nächsten Takt warten. Und Warten bedeutet Latenz. Genau darauf wollte ich unter anderem hinaus.
Zitat
Aber ganz sicher dauert es keine 5ms bis ein Midisignal den USB Bus durchlaufen hat.
Bei guten Geräten mit guten Treibern vergehen zwischen den oben genannten Zeitpunkten A und B sicher weniger als 1ms. Bei schlechten Geräten können es aber durchaus auch mal mehr als 5ms sein, und genau das war meine Aussage. Zusätzlich zu der USB-Latenz kann in diesen Fällen z.B. dadurch viel Zeit vergehen, dass wegen einer ungünstigen Architektur das USB-Gerät die Daten eben nicht so schnell wie möglich über den USB-Bus schickt und der Treiber die Daten nicht so schnell wie möglich weiterleitet.