abc schrieb:
> und was nutzt die MIDI classe für endpoints (Bulk Interrupt ... )?
> davon ist die latency überhaupt erst mal abhängig.
Ich denke, dass es auf Interrupt-Transfer hinausläuft, da das genau in
das Anwendungsprofil von MIDI passt.
Allgemein bin ich da relativ frei, da ich auch vor habe mal einen
Treiber für sowas zu programmieren(zu Lernzwecken, bevor hier die
Wirtschaftlichkeitsdiskussion auftaucht ;) )
Aber ich denke auch die built-in Treiber laufen über Interrupt.
Norbert schrieb:
> Hmmm, ist es nicht so, das im statistischen Mittel die Wartezeit auf's
> Host Polling 500µs (mit einem Jitter +/- 500µs) beträgt?
Mir geht es aber um die Worst-Case Laufzeit. Und die ist wenn ich mich
nicht irre bei 1ms.
Norbert schrieb:
> Ein Byte über MIDI übertragen braucht ja wohl 320µs.
Ja deswegen möchte ich weg von DIN und auf eine reine USB-Lösung setzen.
Denn es bleibt nicht bei einem Byte bei einer Note, es kommen noch
mindestens 2 hinzu. Und wenn noch andere Informationen übertragen werden
sollen, die für die Note entscheidend sein können(CC z.B.), kann es
durchaus mal 2-3ms dauern, bis die komplette Information da ist.
Wenn man das Szenario weiterverfolgt, und mehrere Noten gleichzeitig
ausgeben möchte, kann es letztendlich bei ca. 10ms landen, und das
sollte auch für einen Musiklaien hörbar sein.
USB hat bei der rohen Übertragungsleistung keine Probleme, dort gehen
die paar Bytes innerhalb Bruchteile einer Millisekunde durch die
Leitung.
Norbert schrieb:
> Ohne trollen zu wollen, kann das ein menschliches Ohr wahrnehmen?
>
> PS. Die größte Verzögerung wird man sich wohl im OS einfangen!
Ich gebe dir recht, dass man diese Unterschiede nicht hören kann, aber
man muss es als Zusatz sehen, also, dass die Zeit auf die endgültige
Latenz addiert wird.
Bezüglich OS-Latenz auch dort hast du im Groben recht. Ich konnte
allerdings unter Realtime-Linux eine OS-Latenz von unter einer
Millisekunde
erreichen. Bei Windows über VSTis hab ich leider trotzdem ca. 5ms
Latenz.
Achja um meine subjektive Meinung/Erfahrung noch dazu zu bringen: Ich
kann einen guten Unterschied zwischen 10ms und 4ms hören. Und wenn man
die 4ms als Referenz nimmt erscheint einem die 1ms Latenz von (FS/LS)USB
relativ groß. Aber das ist alles eine sehr subjektive Sache. Es gibt
Menschen denen macht es nichts aus ob sie jetzt 5ms oder 15ms Latenz
haben.
Da hat man diesbezüglich als Drummer Nachteile...
Achja die MIDI-USB Verbindung soll direkt vom "Klangerzeuger"
angesteuert werden. Im konkreten Fall wird es eine Piezo-drum-Trigger to
MIDI Lösung.
Es wird daher noche ein wenig Zeit benötigt(ca. 2ms) um die Piezos
ordentlich auszuwerten.
Um jetzt noch mal auf's eigentliche Thema zurückzukommen.
So wie ich es den Posts entnehmen konnte, ist alleine die "physische"
Verbindung, bzw. das Protokoll ein Stück anders, so dass es nicht
"onboard" klappt, und ich auf ULPI zurückgreifen muss oder?
Gruß
Philipp