An einem kleinen Beispiel möchteich hier den grundsätzlichen Aufbau
eines Midi - Files erklären. Es werden 8 Noten gespielt ( A H C# D E F# G# A )

Klangbeispiel

Die Mididatei hat folgendes Aussehen

Hexadezimal Als ASCII - Zeichen
4D54 6864 0000 0006 0001 0002 00C0 4D54
726B 0000 0079 00FF 0108 5465 7374 6669
6C65 00FF 010F 4279 2057 6572 6E65 7220
4A61 6B6F 6200 FF02 1957 6572 6E65 7220
4A61 6B6F 620D 5765 726E 6572 204A 616B
6F62 00FF 0120 4465 6D6F 6E73 7472 6174
696F 6E20 6569 6E65 7320 4D69 6469 6669
6C65 7320 2020 00FF 5103 07A1 2000 FF58
0404 0218 0800 FF59 0203 0000 FF2F 004D
5472 6B00 0000 7A00 FF21 0100 00FF 0105
6F72 6761 6E00 FF03 056F 7267 616E 00FF
0405 6F72 6761 6E00 C010 00B0 077F 00B0
0A40 00C0 1000 9045 6E81 2090 4500 2090
476E 8120 9047 0020 9049 6E81 2090 4900
2090 4A6E 8120 904A 0020 904C 6E81 2090
4C00 2090 4E6E 8120 904E 0020 9050 6E81
2090 5000 2090 516E 8120 9051 0000 FF2F
MThd..........MT
rk...y....Testfi
le....By Werner
Jakob....Werner
Jakob.Werner Jak
ob... Demonstrat
ion eines Midifi
les.....Q......X
.......Y...../.M
Trk...z..!......
organ....organ..
..organ.........
.@.....En. .E. .
Gn. .G. .In. .I.
.Jn. .J. .Ln. .
L. .Nn. .N. .Pn.
.P. .Qn. .Q.../.

Beginnen wir nun mir der Analyse:

4D54 6864 0000 0006 = der Beginn jeder Midi - Datei
4D54 6864 = MThd: zeigt an, diese Datei ist im Amiga Format.
0000 0006 = Länge der nachfolgenden Bytes im MThd Track

0001 0002 00C0 = Datenbytes des MThd Tracks
0001 = Midiformat 0
  
0000 = Eine Spur beinhaltet alle 16 Kanäle
   0001 = Mehrere Spuren können alle 16 Kanäle beinhalten
   0002 = Mehrere Spuren können unterschiedliche Kanäle beinhalten

0002 = Es folgen 2 MTrk Tracks
00C0 = Die Basisgeschwindigkeit einer Viertelnote = 192


4D54 726B 0000 0079
= 1. MTrk Track mit Längenangabe
4D54 726B = MTrk. Hier beginnt der Track
0000 0079 = Es folgen noch 121 Bytes in diesem Track

00FF 0108 5465 7374 6669 6C65 erste Midimessage
FF01 08 = Textmessage, 8 Bytes lang ( siehe Tabelle 6:)
5465 7374 6669 6C65 = 8 Textbytes "Testfile"

00FF 010F 4279 2057 6572 6E65 7220 4A61 6B6F 6200
= zweite Midimessage
FF01 0F = Textmessage, 16 Bytes lang
4279 2057 6572 6E65 7220 4A61 6B6F 6200= Text

FF02 1957 6572 6E65 7220 4A61
6B6F 620D 5765 726E 6572 204A
616B 6F62 00
= Copyright Eintrag
FF02 19 = Copyright mit 25 Zeichen (siehe Tabelle 6:)
Die anschließenden 25 Bytes sind der Klartext des Copyrights.

FF 0120 4465 6D6F 6E73 7472 6174
696F 6E20 6569 6E65 7320 4D69 6469 6669
6C65 7320 2020 00
= Textmessage

FF 5103 07A1 2000 = Tempowechsel (siehe Tabelle 6:)
FF 5103 = Message für Tempowechsel
07A1 20 = neues Tempo
Berechnung: 07A120= 500.000
60.000.000 / 500.000 = 120 Schläge pro Minute für 1/4 Note

FF58 0404 0218 0800 = Time Signature (siehe Tabelle6:)
FF58 04 = Message für Key Signature
04 02 = 4/4 Takt (zweites Byte: 01=2 02=4 03=8 usw.)
18 = 24 Midizyclen pro Metronomschlag
08 = Anzahl der 32stel Noten in einer Viertelnote

FF59 0203 0000 = Key Signature (siehe Tabelle 6:)
FF59 02 = Key Signature Message
03 = A (0=C 1=G 2=D 3=A -1=F usw.)
00 = Dur ( 0=Dur 1=Moll)
Zusammen: A - Dur

FF2F 00 = End of Track

4D 5472 6B00 0000 7A00 2. MTrk Track mit 122 Bytes

FF21 0100 = Midi Kanal 0 ausgewählt (siehe Tabelle 6:)

FF 0105 6F72 6761 6E00 = Textmessage ("Organ")

FF03 056F 7267 616E 00 = Trackname ( "Organ")

FF 0405 6F72 6761 6E00 = Instrumentenname ("Organ")

C010 00 = Programm Change (GM - Instrumentenauswahl)
(siehe Tabelle 1:)
C=Programmchange 0=Kanal 1 (1=Kanal 2 2=Kanal 3 usw)
10 = GM-Instrument: hier Organ (siehe Tabelle 1:)
dabei ist zu beachten: 0=Instrument 1, 1=Instrument2 usw.

B0 077F 00 =Setze Lautstärke auf 127 (siehe Tabelle 3:)
B=Controller Change 0=Kanal 1
07=Controller 7 ( Main Volume)
7F = Lautstärke 127

B0 0A40 00 = Stereopanorama 40=Mitte 00=links 7F=rechts
(siehe Tabelle 3:)
B=Controller Change 0=Kanal 1
0A = Controller 10 (Stereopanorama)
40 = Mitte

C010 00 = Programmchange (siehe oben)

9045 6E81 20 Spiele Note A in der 5 Oktave
(siehe Tabelle 4:)
9 = Note ein 0=Kanal 1
45 = Note A in der 5 Oktave
6E = Anschlagstärke
81 = Dauer der Note

90 4500 20 = Schalte Note 45 aus
9 = Note ein 0=Kanal 1
45 = Note A in der 5 Oktave
00 = Anschlagdynamik (Lautstärke 0)
Erklärung: Schalte Note mit
Lautstärke 0 ein hat die gleiche
Bedeutung wie Note off.

90476E 8120 = Note H ein
9047 0020 = Note H aus
9049 6E81 20 = Note C# ein
90 4900 20 = Note C# aus
90 4A6E 8120 = Note D ein
904A 0020 = Note D aus
904C 6E81 20= Note E ein
90 4C00 20 = Note E aus
90 4E6E 8120 = Note F# ein
904E 0020 = Note F# aus
9050 6E81 20 = G# ein
90 5000 20 = Note G# aus
90 516E 8120 = Note A in der 6 Oktave ein
9051 0000 = Note A aus

FF2F 00 = Track Ende