Midi-Timing

Jeder Midi-Message, unabhĂ€ngig davon, ob sie einen hörbaren Effekt bringt, ist ein Deltwert vorangestellt. Ist dieser Wert grĂ¶ĂŸer NULL bewirkt er, dass die nachfolgende Message erst nach einer gewissen Zeit ausgefĂŒhrt wird. Diese Zeit ergibt sich aus dem Deltawert in Verbindung mit dem PPQN-Wert und dem Tempowert . Den Deltawert könnte man mit dem Notenwert vergleichen, also Viertelnote, Achtelnote usw.. Welchen Notenwert der Deltawert reprĂ€sentiert, ergibt sich aus dem VerhĂ€ltnis zum PPQN-Wert. Ist dieser 480 und der Deltawert ist 960, dann reprĂ€sentiert der Deltawert eine halbe Note. Um zu ermitteln, wieviel Zeit vergeht, bis das Midi-Ereignis ausgefĂŒhrt wird, benötigen wir den Tempowert. Dieser bestimmt die Zeit, in der eine Viertelnote gespielt wird und ist in Mykrosekunden definiert. Der Tempowert kann innerhalb eines Midis beliebig oft geĂ€ndert werden. Bei mehrspurigen Midis findet man oft eine separate Tempospur, in der die TempoĂ€nderungen abgelegt sind.
Grafik
Die nebenstehende Grafik zeigt die Umsetzung von 4 unmittelbar aufeinanderfolgenden Viertelnoten in Midi. Es folgen jeweils:
Deltawert (0) --> Note ein --> Deltawert --> Note aus
wobei der Deltawert vor der 'Note aus' - Message gleich dem Deltawert fĂŒr eine Viertelnote ist. Daran ist zu erkennen: Wie lange ein Ton gespielt wird, hĂ€ngt vom Deltawert ab, der vor der Message steht, die den Ton wieder ausschaltet. Zwischen der 'Note ein' und der 'Note aus'- Message können natĂŒrlich andere Messages mit ihren Deltawerten stehen. In diesem Fall addieren sich die Deltawerte und ergeben in ihrer Gesamtheit den Deltawert, nach dem die Note wieder ausgeschaltet wird.
Der Deltawert umfasst in der Praxis ein bis drei Bytes und steht im Big-Endian-Format (das erste Byte ist also das Byte mit der höchsten Wertigkeit) in der Datei. Ist dieses Byte > 127 folgt ein weiteres Delta-Byte usw.. Der Deltawert errechnet sich zu:
Deltawert 3 Bytes:
Deltawert = ((Byte1 - 80h) * 16'384) + ((Byte2 - 80h) * 128) + Byte3
Delta-Wert 2 Bytes:
Deltawert = ((Byte1 - 80h) * 128) + Byte2
Deltawert 1 Byte:
Deltawert = Byte1

Um die Deltazeit in Millisekunden zu ermitteln, die bis zur AusfĂŒhrung der folgenden Message vergehen soll, sind noch ein paar Berechnungen erforderlich.
Zuerst muss das VerhĂ€ltnis zum Deltawert fĂŒr eine Viertelnote(PPQN) ermittelt werden. Das Ergebnis wird dann mit dem Tempowert multipliziert und da dieser in Mykrosekunden angegeben ist, nochmals durch 1000 dividiert.

Deltazeit = Deltawert / Delta4 * Tempowert / 1000

Der Tempowert steht in Form einer Meta-Message (möglicherweise mehrmals) in der Midi-Datei. Ist kein Tempowert angegeben, wird standardmĂ€ĂŸig von 120 Viertelnoten/Minute ausgegangen, was einem Tempowert von 500'000 entspricht.

Die Berechnung des Tempos aus dem Tempowert
Möchten Sie das aktuelle Spieltempo anzeigen lassen und es handelt sich um einen /4-Takt, berechnen Sie aus dem Tempowert das Tempo in Viertelnoten/Minute:
Tempo = 60'000'000 / Tempowert

Windows-Programme, Windows-Anwendungen, Windows-Programmierung, DLL, DLLs, Dll-Programmierung, Webprogrammierung, Web-Hosting, CMS, mySQL-Datenbank, mySQL Datenbank, Datenbankprogrammierung, Büroprogramme, Midi-Programme, Informationen über Midi, Midi-Dateiaufbau, Midi-Messages, Channel-Messages, Channel Messages, Meta-Messages, SysEx-Messages, SysEx Messages, Midi-Timing, Midi Timing, Midi Deltawert, Midi-Programmierung, Midiprogrammierung