Das MIDI-Protokoll gestattet lediglich
Noten- und Controllerwerte
von 0 bis 127, was dazu führt, dass bei Werten geringer
Aussteuerung für z.B. die Lautstärke relativ grobe Abstufungen
entstehen, wenn ein bereits kleiner stark klangbestimmender Wert
um einen geringen Betrag geändert werden soll. Daher werden in
vielen modernen MIDI-Geräten die von externen Geräten kommenden
Werte der Steuerkommandos interpoliert, um hörbare Sprünge zu
vermeiden. Dieser Rechenschritt führt zu Verzerrungen der
Steuerkurve und auch zu einer kleinen Verzögerung, die um so
stärker zu Tage tritt, je schneller ein Parameter geändert werden
soll.
Die Bandbreite des MIDI-Protokolls ist
physikalisch auf 30kBit begrenzt, wodurch für typische
3-Byte-Nachrichten mit overhead und sendebedingten Pausen nur etwa
1000 Ereignisse je Sekunde möglich sind. Werden dann aber mehrere
Tasten angeschlagen, so können diese bei direkter und
unverzögerter Ausgabe nicht gleichzeitig übertragen und vom
Zielsystem wiedergegeben werden. Es entstehen unweigerlich
dynamische Verzögerungen. Das Ausdruckspiel von Blasmusikern aber
auch der detailierte Anschlag von Pianisten, müssten sehr fein
aufgelöst werden, um sie angemssen genau zu übertragen, was
bereits bei einigen wenigen Kanälen an seine Grenzen stösst und
selbst bei einem einzigen Tonkanal zu Fehlern führt - wenn auch zu
geringen.
Das Problem lässt sich nur durch eine
Steigerung der Bandbreite lösen:
Mit dem Aufkommen des USB-Protokolls bei
Computern besteht die Möglichkeit, eine USB-fähige Tastatur an
Computer anzuschließen und damit aufzuzeichnen. Die Bandbreite des
USB-Protokolls ist nahezu um den Faktur 50 grösser und reduziert
die auftretende Latenz theoretisch um diesen Faktor. Problem: Die
Treiber der Rechnersysteme produzieren ihrerseits wieder eine
Latenz. Bis das Signal im System verarbeitet wird und ein -
womöglich noch über Softwaresynthesizer erzeugter - Klang hörbar
wird, vergehen oft 10-20ms und mehr, was für ein flüssiges
Einspielen vollkommen unakzeptabel ist.
Bei einer selbstentwickelten Hardware
wird daher der Weg verfolgt, eine vorhandene digitale
Audioschnittstelle zu nutzen, um MIDI-Daten mit 4MHz Bandbreite
OHNE nennenswerte Verzögerung zu übertragen. Statt einem
klassischen seriellen Interface wird das bereits eingeführte
S/PDIF genutzt und einfach das MIDI-Protokoll auf gelegt. Ein
Datenstrom, wie er beim Anschlag eines beidhändigen Akkords
erfolgt und einen Umfang von 20 Bytes hätte, die gleichzeitig zu
erklingen hätten, ist damit in 5us übertragen. Die Verarbeitung
der Tastaturinformation auf der Sendeseite ist damit der
zeitbegrenzende Faktor und kann von einer Hardware in etwa
derselben Zeit bewerkstelligt werden.
Beispiel für die Verzögerung bei
unterschiedlichen Nachrichtengrössen:
|
20 Bytes |
200 Bytes |
2 kBytes |
MIDI 30kBit |
1 ms |
10 ms |
100 ms |
USB 1.1 12 MBit |
10,0 ms |
10,0 ms |
10,1 ms |
S/PDIF 48 kHz |
10 us |
100 us |
1 ms |
ETHERNET 100 |
3 ms |
3 ms |
3 ms |
Ähnlicher
Artikel :
Probleme mit dem MIDI-Protokoll
|