Der Aufbau von Midi-Dateien

Midi-Header
Track-Header 1 (Spurkopf 1)
Track 1 (Spurdaten Spur 1)
Track-Header 2 (Spurkopf 2)
Track 2 (Spurdaten Spur 2)
Track-Header n (Spurkopf n)
Track n (Spurdaten Spur n)
Einspurige Midi-Dateien enthalten nur fĂŒr eine Spur Spurkopf und Spurdaten.

Der Midi-Header (Midi-Kopf)
Die ersten 14 Bytes einer Midi-Datei enthalten den Midi-Header. Dieser ist wie folgt aufgebaut (die Daten liegen im Big-Endian-Format vor):

Bytes Daten-Typ Daten Bedeutung
1 - 4 CHAR MThd Kennung Midi-Header
5 - 8 DWORD 00 00 00 06 GrĂ¶ĂŸe des Midi-Headers in Byte
9 - 10 WORD
00 00
00 01
00 02
Midi-Format
einspurig
mehrspurig synchron
mehrspurig asynchron
11 - 12 WORD aa bb Anzahl der Spuren
13 - 14 WORD aa bb Deltawert fĂŒr eine Viertelnote

Der Track-Header (Spur-Kopf)
Ein Spurkopf beinhaltet 8 Bytes: (die Daten liegen im Big-Endian-Format vor)
Bytes Daten-Typ Daten Bedeutung
1 - 4 CHAR MTrk Kennung Midi-Track
5 - 8 DWORD aa bb cc dd SpurgrĂ¶ĂŸe der Spur excl. Spurkopf

Die Tracks (Spur-Daten)
Die Spur-Daten liegen in Midi-Dateien als Bytefolgen vor. Sie haben lediglich Steuer-Funktion, sind also keine Klang-Daten. Diese Steuerdaten werden in Form von Messages an das Midi-GerĂ€t gesendet. Das erste Byte dieser Messages wird Status-Byte genannt. Dieses beinhaltet den Typ der Message; bei Channel-Messages wird dieses Byte bei der Auswertung in zwei Halb-Bytes (Nibbles) geteilt, wobei das höherwertige Halb-Byte die Message und das niederwertige Halb-Byte den Midi-Kanal reprĂ€sentiert. Jeder Message ist ein Deltawert vorangestellt der festlegt, wie lange 'gewartet' werden soll, bis die Message ausgefĂŒhrt wird. Der Deltawert ist NULL, wenn die Message sofort ausgefĂŒhrt werden soll.
Es ist theoretisch möglich, dass eine Spur keine Daten enthĂ€lt, was natĂŒrlich wenig sinnvoll ist. Eine Message steht jedoch auf jeden Fall in der Spur: die Spurende-Message.
In den Spuren steht also jeweils ein Deltawert gefolgt von einer Message.

Beispiel fĂŒr eine Midi-Datei, in der vier Viertelnoten gespielt werden:
    
4D 54 68 64 00 00 00 06 00 00 00 01 01 80 ;Midi-Kopf
4D 54 72 6B 00 00 00 28 ;Spurkopf
;Spurdaten....
(00) (90 30 4E) ;Note an
(83 00) (90 30 00) ;Note aus
(00) (90 30 4E) ;Note an
(83 00) (90 30 00); Note aus
(00) (90 30 4E) ;Note an 
(83 00) (90 30 00) ;Note aus
(00) (90 30 4E) ;Note an
(83 00) (90 30 00) ;Note aus
(00) (FF 2F 00) ;Spurende-Message
    
    
(Die Klammern dienen der Abgrenzung Deltawert-Message. Sie stehen wie die Kommentare selbstverstÀndlich nicht in der Midi-Datei!)

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