Tips & Tricks 1.1.
Grundwissen MIDI

    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
 
 

 
1.1. Was ist MIDI ?

    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!).



 
1.2. Was kann MIDI ?

    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.

zurück zum Anfang



 
 1.3. Wie funktionieren MIDI Messages ?

    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.

zurück zum Anfang
 

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.
 

zurück zum Anfang
  

 
Tabelle 1:  Channel Messages
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
 -Werte für n entsprechend <Tabelle 6>
-alle parameter pr1 and pr2 haben einen Wertzwischen 00 und 7F (Hex),
was einem Dezimalwert von 0 bis 127 entspricht
zurück zum Anfang
 

 
 Tabelle 2:  System Exclusive (Sysex) Messages
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
 also bewirkt die Sysex message  "F0 43 10 4C 08 00 18 7F F7" eine Veränderung des Cutoff Wertes auf 127,
wenn sie an das entsprechende Gerät (Yamaha DB-50) gesendet wird.
 Sysex messages für ihre Geräte sollten eigentlich in den jeweiligen Handbüchern aufgelistet sein.
 
zurück zum Anfang

 
Tabelle 3:  System Common Messages
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
zurück zum Anfang



 
Tabelle 4:  System Real-Time Messages
MIDI Nachricht in Hex Funktion
F8 Clock
FA Start
FB Continue
FC Stop
FE Active Sensing
FF System Reset
 
zurück zum Anfang

 
Tabelle 5:  MIDI Controller (control changes)
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
 
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
zurück zum Anfang

 
Tabelle 6:  MIDI Notennummern, dezimale / hexadezimale Darstellung
C  C# D# F# G# A#
Oktave  - - - - - - - - - - - - -
 0 -
00

01

02

03

04

05

06

07

08

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
- - - -
 
zurück zum Anfang

 
Tabelle 7: GM Instrument Map
 
 
 
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
 

Tabelle 8: GM Drum Map
(wird nachgereicht..., sorry...)

alle Texte (c)1998, Stefan Zach,
Nachdruck, Wiederveröffentlichung und sonstiges
nur mit Erlaubnis des Verfassers !