1.1. Was ist MIDI ?
1.2. Was kann MIDI
?
1.3.
Wie funktionieren MIDI Controller/Messages ?
1.4.
Was bedeuten SMF,GM,GS und XG ?
Tabelle
1: Channel Messages
Tabelle
2: System Exclusiv Messages
Tabelle 3:
System Common Messages
Tabelle
4: System Real-Time Messages
Tabelle
5: MIDI Controller (control changes)
Tabelle
6: MIDI Notennummern, dezimale und hexadezimale Darstellung
Tabelle 7:
GM Standard Instrument Map
Tabelle 8: GM
Drum Map
MIDI steht für "Musical Instrument Digital Interface",
und wurde als Standard 1983 eingeführt.
MIDI ist, grob gesagt, die Sprache mit der verschiedene
Geräte (Keyboard,Synthesizer,Sampler,Sequenzer...)
miteinander kommunizieren, oder vom Anwender in
Echtzeit gesteuert werden.
In einem normalen MIDI System können auf 16
unabhängigen MIDI Kanälen (engl. MIDI channel)
MIDI Nachrichten (engl. MIDI messages) an bis zu
16 verschiedene Geräte gesendet werden.
MIDI Nachrichten werden z.B. von einem MIDI-Keyboard
an einen Klangerzeuger gesendet,
um diesem mitzuteilen, welche Note(n) auf dem Keyboard
gespielt werden und wie lange und wie fest die Taste(n)
gedrückt werden (Wichtig: Es werden keine Töne
per MIDI gesendet, nur digital codierte Steuerbefehle!).
MIDI dient zur Echtzeitteuerung von Klangerzeugern
und anderen Geräten.
Mit MIDI kann man verschiedene Geräte,
wie etwa Sequenzer, Synthesizer und Drumcomputer,
synchron abspielen.
Man kann sogar im synchronisierendem Gerät
(Master) den Song vor- und zurückspulen wie bei einer Bandmaschine,
und alle angeschlossenen, synchronisierten Geräte
springen zur Songposition des Masters.
Ein Sequenzer kann Arrangements von mehreren Instrumenten
abspielen,
aufnehmen, editieren und natürlich auch abspeichern.
Es ist möglich mit einem Sequenzer MIDI Daten
zugleich aufzunehmen und abzuspielen.
So kann ein einzelner Musiker ein ganzes Orchester
aus Synthesizern spielen,
indem er zuerst nur ein Instument eines Stückes
aufnimmt, und dannach,
während das erste Instrument nun vom Sequenzer
abgespielt wird,
das zweite Instrument einspielt und so weiter...
Die meisten MIDI Sequenzer Programme bieten Noten-,
Listen- oder Drumeditoren,
so daß umfangreiche Möglichkeiten zur
Nachbearbeitung der aufgenommenen MIDI Daten bestehen.
Per MIDI-Dump kann man Voreinstellungen von MIDI-Geräten
(engl. presets) im Computer speichern
und so den meist sehr begrenzten Preset Speicher
des Gerätes umgehen.
Natürlich kann man auch Presets vom Computer
zu den Geräten senden,
so können z.B. Synthesizer per MIDI-Dump zu
neuen Sounds gelangen.
Wie oben bereits erwähnt überträgt,
MIDI keine Klänge, sondern allerlei codierte Parameter (messages).
Grundsätzlich gibt vier verschiedene Arten
von MIDI messages:
-Channel Messages
heissen so, weil bereits in der Nachricht selbst der festgelegt wird, auf
welchem MIDI Kanal die Nachricht
übermittelt wird <siehe
Tabelle 1>,
zu den Channel Messages zählen auch die MIDI Controller (engl. control
changes) <siehe Tabelle
5>
-System Exclusive Messages
auf System Exclusive Nachrichten (Sysex) reagieren nur die in der Nachricht
addressiertem MIDI Geräte,
andere Geräte ignorieren die Nachricht <siehe
Tabelle 2>
-System Common Messages <siehe
Tabelle 3>
-System Real-Time Message <siehe
Tabelle 4>
Beispiel 1(Note G3 auf MIDI Kanal 1): 91 2B 7F 81 2B 4D
Wenn die Taste G3 eines Keyboards gespielt wird,
wird bei Tastendruck eine "Note on" message gesendet
(91 2B 7F),
gefolgt von einer "Note off" message (91 2B 4D),
die beim Loslassen der Taste ausgelöst wird.
Note on/off messages gehören zu den Channel
Messages <Tabelle 1>,
sind je drei bytes lang und enthalten folgende Werte:
Statusbyte
MIDI Kanal
Notenwert
Anschlagdynamik (engl. note on velocity)
Loslassdynamik (engl. release or note off velocity)
Notenlänge
-Alle MIDI messages beginnen mit einem "Statusbyte",
das die Art der message bestimmt
-Die MIDI Kanal Nummer
legt fest, auf welchem Kanal die message gesendet wird.
-Die Notennummer gibt
wieder, welche Note gespielt wurde.
-Die Anschlagdynamik
gibt die Geschwindigkeit an, mit der die Taste gedrückt wurde.
-Die Loslassdynamik
gibt die Geschwindigkeit an, mit der die Taste losgelassen wurde.
-Die Zeit für die die Taste am Keyboard gedrückt
blieb,entspricht genau der Zeit,
die zwischen den beiden messages vergeht,
und bestimmt somit die Notenlänge.
Statusbyte (9=Note on, siehe Tabelle 1)
| Notennummer (2B ist hexadezimal
für 43, entspricht G3, siehe Tabelle 6)
|
|
91 2B
7F
|
|
| Wert
der Anschlagdynamik (in hex,7F=127)
MIDI Kanal Nummer (in
hex)
Statusbyte (8=Note off, siehe Tabelle 1)
| Notennummer (2B ist hexadezimal
für 43, entspricht G3, siehe Tabelle 6)
|
|
81 2B
4D
|
|
| Wert
der Loslassdynamik (in hex,4D=77)
MIDI Kanal Nummer (in hex)
Beispiel 2 (Programmwechsel zu Program 27 auf Kanal 11): CB 1B
Statusbyte (C=Program Change, siehe Tabelle 1)
| Programmnummer (1B
ist hexadezimal für 27)
| |
CB 1B
|
MIDI Kanal Nummer (in hex)
Es gibt natürlich weit mehr Kontrollmöglichkeiten
als Noten an und aus zu schalten,
oder Programme zu wechseln.
<Tabelle
5> gibt einen Überblick über die genormten MIDI Controller,
mit denen man in Echtzeit auch andere Parameter
steuern kann.
1.4.
Was bedeuten SMF, GM/GS und XG ?
Wie bereits erwähnt, kann ein Musiker mit seinem
Sequenzer seine Arrangements speichern.
Allerdings benutzten verschiedene Sequenzer verschiedene
Dateiformate zum speichern,
die nicht zueinander kompatibel waren.
Deshalb wurde ein einheitlichles Format für
MIDI Songs entwickelt,
SMF (engl. Standard MIDI File), so daß Songs
zwischen verschieden Sequenzern ausgetauscht werden konnten.
Unter anderem enthalten diese gespeicherten MIDI
files auch die Information, welche Soundbänke und
welche Programme auf den einzelnen MIDI Kanälen
gespielt werden sollen (bank select/program change).
Vor der Einführung von GM (General MIDI) gab
es aber keine Norm für diese Soundbänke und Programme,
was also bedeutete, daß verschiede Synthesizer
völlig verschiedene Instrumente auf den gleichen Bank/Programm
Plätzen wiedergaben.
Ein Austausch von MIDI Songs zwischen zwei Musikern
mit unterschiedlichem Synthesizern war also unmöglich,
bzw. hätte der selbe Song völlig verschiede
Klänge (Instrumente) bei den verchiedenen Synths benützt.
Um Klangkompatibilität von verschiedenen Geräten
zu erreichen, wurde GM eingeführt.
Als eine Erweiterung des MIDI Standards legt GM
128 Soundprogramme fest,
die jeder GM kompatible Klangerzeuger wiedergeben
können muß und die bei jedem auf dem
selben Programm Platz liegen (d.h. jedes GM Gerät
spielt z.B. auf Programm 14 das Xylophon).
<Tabelle 7>
Desweiteren muß ein GM Klangerzeuger mindestens
24fach polyphon sein und fähig,
auf allen 16 Kanälen zugleich MIDI zu empfangen
(16-facher Multimode).
Drums müssen einer speziellen Anordnung folgen
und standardmäßig Kanal 10 belegen.
<Tabelle 8>
GS (Roland) ist zu GM kompatibel, bietet aber noch
mehr Möglichkeiten, u.a. :
- 9 verschiedene Drumkits
- Hall und Chorus Effekt
- 33 Special Effect Sounds
XG (Yamaha) ist sowohl zu GM als auch GS kompatibel,
bietet noch weitere Funktionen,
auf die ich hier aber nicht weiter eingehen will.
MIDI Nachricht in Hex | Funktion | Parameter Beschreibung |
8n pr1 pr2 | Note aus (off) | n=Nummer des MIDI Channel
pr1=Noten Nummer pr2=Wert der Loslassdynamik |
9n pr1 pr2 | Note an (on) | n=Nummer des MIDI Channels
pr1=Noten Nummer pr2=Wert der Anschlagdynamik |
An pr1 pr2 | Polyphoner Aftertouch | n=Nummer des MIDI Channels
pr1=Noten Nummer pr2=Daten Wert |
Bn pr1 pr2 | MIDI Controller
(control change) <Tabelle 5> |
n=Nummer des MIDI Channels
pr1=Controller Nummer pr2=Daten Wert |
Cn pr1 | Program Change | n=Nummer des MIDI Channels
pr1=Programm Nummer |
Dn pr1 | Channel Aftertouch | n=Nummer des MIDI Channels
pr1=Daten Wert |
En pr1 pr2 | Pitch Bend | n=Nummer des MIDI Channels
pr1=LSB pr2=MSB |
MIDI Nachricht in Hex (Beispiel) | Funktion | Parameter Beschreibung |
F0 | Start Sysex | F0 kennzeichnet den Beginn einer Sysex Nachricht |
43 | Manufacturer ID | ID Nummer des Geräte Herstellers (hier: Yamaha ID) |
10 | Device ID | ID Nummer des Gerätes
(hier: DB-50) |
4C | Model ID | ID Nummer
(hier: XG Model) |
08 | Command ID | Art der Sysex Meldung
(hier: Multipart-Meldung) |
00 | Adresse (high) | Art der Sysex Meldung
(hier: Cutoff) |
18 | Adresse (low) | Art der Sysex Meldung
(hier: Cutoff) |
7F | Daten Wert | Parameter Wert (hier: 7F in HEX entsprechen 127 dezimal) |
F7 | End Sysex | F7 kennzeichnet das Ende einer Sysex Nachricht |
MIDI Nachricht in Hex | Funktion | Parameter Beschreibung |
F1 pr1 | MIDI Time Code | Synchronisation |
F2 pr1 pr2 | Song Position | pr1=LSB pr2=MSB |
F3 pr1 | Song Select | pr1=Song Nummer |
F4 | n.d. | - |
F5 | n.d. | - |
F6 | Tune Request | nur für ältere Synthesizer |
F7 | End | F7 kennzeichnet das Ende einer Sysex Nachricht |
MIDI Nachricht in Hex | Funktion |
F8 | Clock |
FA | Start |
FB | Continue |
FC | Stop |
FE | Active Sensing |
FF | System Reset |
Controller
Nummer (dezimal) |
Controller
Nummer (hexadezimal) |
Controller Name/Funktion | Werte
(dezimal) |
Werte
(hexadezimal) |
0 | 00 | Bank Select MSB | 0-127 | 00-7F |
1 | 01 | Modulation MSB | 0-127 | 00-7F |
2 | 02 | Breath Controller MSB | 0-127 | 00-7F |
3 | 03 | nicht definiert | - | - |
4 | 04 | Foot Controller MSB | 0-127 | 00-7F |
5 | 05 | Portamento Time MSB | 0-127 | 00-7F |
6 | 06 | Data Entry MSB | 0-127 | 00-7F |
7 | 07 | Main Volume MSB | 0-127 | 00-7F |
8 | 08 | Balance MSB | 0-127 | 00-7F |
9 | 09 | nicht definiert | - | - |
10 | 0A | Panorama MSB | 0-127 | 00-7F |
11 | 0B | Expression MSB | 0-127 | 00-7F |
12 | 0C | Effect Controller 1 | 0-127 | 00-7F |
13 | 0D | Effect Controller 1 | 0-127 | 00-7F |
14-15 | 0E-0F | nicht definiert | - | - |
16-19 | 10-13 | General Purpose #1-4 MSB | 0-127 | 00-7F |
20-31 | 14-1F | nicht definiert | - | - |
32-63 | 20-3F | LSB für Controller 0-31 | 0-127 | 00-7F |
64 | 40 | Sustain on/off | 0=Off 127=On | 00=Off 7F=On |
65 | 41 | Portamento on/off | 0=Off 127=On | 00=Off 7F=On |
66 | 42 | Sostenuto on/off | 0=Off 127=On | 00=Off 7F=On |
67 | 43 | Soft Pedal | 0=Off 127=On | 00=Off 7F=On |
68 | 44 | Legato Footswitch | 0-63=normal
64-127=legato |
00-3F=normal
40-7F=legato |
69 | 45 | Hold/Sustain 2 | 0-127 | 00-7F |
70 | 46 | Sound Controller 1
(default: Sound Vatiation) |
0-127 | 00-7F |
71 | 47 | Sound Controller 2
(default: Timbre Content) |
0-127 | 00-7F |
72 | 48 | Sound Controller 3
(default: Release Time) |
0-127 | 00-7F |
73 | 49 | Sound Controller 4
(default: Attack Time) |
0-127 | 00-7F |
74 | 4A | Sound Controller 5
(default: Brightness) |
0-127 | 00-7F |
75-79 | 4B-4F | Sound Controller 6-10 (no default) | 0-127 | 00-7F |
80-83 | 50-53 | General Purpose #5-8 | 0-127 | 00-7F |
84 | 54 | Portamento Controller | 0-127 | 00-7F |
85-90 | 55-5A | nicht definiert | - | - |
91 | 5B | Effect 1 Depht | 0-127 | 00-7F |
92 | 5C | Effect 2 Depht | 0-127 | 00-7F |
93 | 5D | Effect 3 Depht | 0-127 | 00-7F |
94 | 5E | Effect 4 Depht | 0-127 | 00-7F |
95 | 5F | Effect 5 Depht | 0-127 | 00-7F |
96 | 60 | Data Increment | 0 or 127 | 00 or 7F |
97 | 61 | Data Decrement | 0 or 127 | 00 or 7F |
98 | 62 | NRPN (Non-Registered Parameter Number) LSB | 0-127 | 00-7F |
99 | 63 | NRPN (Registered Parameter Number) MSB | 0-127 | 00-7F |
100 | 64 | RPN (Registered Parameter Number) LSB | 0-127 | 00-7F |
101 | 65 | RPN (Registered Parameter Number) MSB | 0-127 | 00-7F |
102-119 | 66-77 | nicht definiert | - | - |
120 | 78 | All Sounds off | 0 | 0 |
121 | 79 | Reset all Controllers | 127 | 7F |
122 | 7A | Local Control | 0=Off 127=On | 00=Off 7F=On |
123 | 7B | All Notes off | 0 | 00 |
124 | 7C | Omni Off | 0 | 00 |
125 | 7D | Omni On | 0
|
00 |
126 | 7E | Mono On (Wert entspricht der Zahl
der benutzten Kanäle; 0 bei Nutzung aller Kanäle) |
0-16 | 00-10 |
127 | 7F | Poly On | 0 | 00 |
C | C# | D | D# | E | F | F# | G | G# | A | A# | B | ||
Oktave | - | - | - | - | - | - | - | - | - | - | - | - | - |
0 | - | 0
00 |
1
01 |
2
02 |
3
03 |
4
04 |
5
05 |
6
06 |
7
07 |
8
08 |
9
09 |
10
0A |
11
0B |
1 | - | 12
0C |
13
0D |
14
0E |
15
0F |
16
10 |
17
11 |
18
12 |
19
13 |
20
14 |
21
15 |
22
16 |
23
17 |
2 | - | 24
18 |
25
19 |
26
1A |
27
1B |
28
1C |
29
1D |
30
1E |
31
1F |
32
20 |
33
21 |
34
22 |
35
23 |
3 | - | 36
24 |
37
25 |
38
26 |
39
27 |
40
28 |
41
29 |
42
2A |
43
2B |
44
2C |
45
2D |
46
2E |
47
2F |
4 | - | 48
30 |
49
31 |
50
32 |
51
33 |
52
34 |
53
35 |
54
36 |
55
37 |
56
38 |
57
39 |
58
3A |
59
3B |
5 | - | 60
3C |
61
3D |
62
3E |
63
3F |
64
40 |
65
41 |
66
42 |
67
43 |
68
44 |
69
45 |
70
46 |
71
47 |
6 | - | 72
48 |
73
49 |
74
4A |
75
4B |
76
4C |
77
4D |
78
4E |
79
4F |
80
50 |
81
51 |
82
52 |
83
53 |
7 | - | 84
54 |
85
55 |
86
56 |
87
57 |
88
58 |
89
59 |
90
5A |
91
5B |
92
5C |
93
5D |
94
5E |
95
5F |
8 | - | 96
60 |
97
61 |
98
62 |
99
63 |
100
64 |
101
65 |
102
66 |
103
67 |
104
68 |
105
69 |
106
6A |
107
6B |
9 | - | 108
6C |
109
6D |
110
6E |
111
6F |
112
70 |
113
71 |
114
72 |
115
73 |
116
74 |
117
75 |
118
76 |
119
77 |
10 | - | 120
78 |
121
79 |
122
7A |
123
7B |
124
7C |
125
7D |
126
7E |
127
7F |
- | - | - | - |
Prog# Instrument | Prog# Instrument |
(1-8 PIANO)
1 Acoustic Grand 2 Bright Acoustic 3 Electric Grand 4 Honky-Tonk 5 Electric Piano 1 6 Electric Piano 2 7 Harpsichord 8 Clav |
(65-72 REED)
65 Soprano Sax 66 Alto Sax 67 Tenor Sax 68 Baritone Sax 69 Oboe 70 English Horn 71 Bassoon 72 Clarinet |
(9-16 CHROM PERCUSSION)
9 Celesta 10 Glockenspiel 11 Music Box 12 Vibraphone 13 Marimba 14 Xylophone 15 Tubular Bells 16 Dulcimer |
(73-80 PIPE)
73 Piccolo 74 Flute 75 Recorder 76 Pan Flute 77 Blown Bottle 78 Skakuhachi 79 Whistle 80 Ocarina |
(17-24 ORGAN)
17 Drawbar Organ 18 Percussive Organ 19 Rock Organ 20 Church Organ 21 Reed Organ 22 Accoridan 23 Harmonica 24 Tango Accordian |
(81-88 SYNTH LEAD)
81 Lead 1 (square) 82 Lead 2 (sawtooth) 83 Lead 3 (calliope) 84 Lead 4 (chiff) 85 Lead 5 (charang) 86 Lead 6 (voice) 87 Lead 7 (fifths) 88 Lead 8 (bass+lead) |
(25-32 GUITAR)
25 Acoustic Guitar(nylon) 26 Acoustic Guitar(steel) 27 Electric Guitar(jazz) 28 Electric Guitar(clean) 29 Electric Guitar(muted) 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar Harmonics |
(89-96 SYNTH PAD)
89 Pad 1 (new age) 90 Pad 2 (warm) 91 Pad 3 (polysynth) 92 Pad 4 (choir) 93 Pad 5 (bowed) 94 Pad 6 (metallic) 95 Pad 7 (halo) 96 Pad 8 (sweep) |
(33-40 BASS)
33 Acoustic Bass 34 Electric Bass(finger) 35 Electric Bass(pick) 36 Fretless Bass 37 Slap Bass 1 38 Slap Bass 2 39 Synth Bass 1 40 Synth Bass 2 |
(97-104 SYNTH EFFECTS)
97 FX 1 (rain) 98 FX 2 (soundtrack) 99 FX 3 (crystal) 100 FX 4 (atmosphere) 101 FX 5 (brightness) 102 FX 6 (goblins) 103 FX 7 (echoes) 104 FX 8 (sci-fi) |
(41-48 STRINGS)
41 Violin 42 Viola 43 Cello 44 Contrabass 45 Tremolo Strings 46 Pizzicato Strings 47 Orchestral Strings 48 Timpani |
(105-112 ETHNIC)
105 Sitar 106 Banjo 107 Shamisen 108 Koto 109 Kalimba 110 Bagpipe 111 Fiddle 112 Shanai |
(49-56 ENSEMBLE)
49 String Ensemble 1 50 String Ensemble 2 51 SynthStrings 1 52 SynthStrings 2 53 Choir Aahs 54 Voice Oohs 55 Synth Voice 56 Orchestra Hit |
(113-120 PERCUSSIVE)
113 Tinkle Bell 114 Agogo 115 Steel Drums 116 Woodblock 117 Taiko Drum 118 Melodic Tom 119 Synth Drum 120 Reverse Cymbal |
(57-64 BRASS)
57 Trumpet 58 Trombone 59 Tuba 60 Muted Trumpet 61 French Horn 62 Brass Section 63 SynthBrass 1 64 SynthBrass 2 |
(121-128 SOUND EFFECTS)
121 Guitar Fret Noise 122 Breath Noise 123 Seashore 124 Bird Tweet 125 Telephone Ring 126 Helicopter 127 Applause 128 Gunshot |