Mike Slinn Music

MIDI Notes


Time to read: about 3 minutes.

Windows 7 64 Bit Debugging

  • RME: 10 MIDI device limit. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 - Remove all midi, midi1, midi2 and reinstall all drivers
  • Verify that registry key HKLM\SYSTEM\ControlSet001\Control\Class\4D36E96C-E325-11CE-BFC1-08002BE10318 has a Multi-String Value "UpperFilters" has data "ksthunk"; add it if not.
  • Microsoft support here
  • M-Audio MIDI Fix - Windows MIDI utility to clean out uplicate installed MIDI devices for PCI and USB interfaces. Windows has a limit to the number of device drivers installed, once that number has been exceeded new installations will result in the device MIDI port not showing up in the Device Manager. This is useful for Windows 7 64 bit, and it worked.
  • set devmgr_show_nonpresent_devices=1
    start Devmgmt.msc
    This opens device manager, you then set "show hidden devices" under view.
    With all your actual devices connected & powered up - Drivers that are installed but not loaded show up lighter than those that are loaded & can be deleted.

Reference

MIDI Manufacturers Association

MIDI Messages

MIDI Data chart

Midi Show Control

Mackie HUI Protocol

Device IDs (for SysEx Messages)
Behringer FCB1010 12
Roland Sonic Cell 17
Roland HPD-15 18

My MIDI Channel Assignments

(extrapolated from common MIDI channel assignments)

Channel Instrument
1 Piano
2 Bass
3 Left hand / accompaniment
4 Right hand / melody
5 Handsonic Melo 1 • Secondary Accompaniment Instrument (harmony)
6 Instrument Handsonic Melo 2 • Secondary Melodic
7  
8  
9  
10 Handsonic pads • Drums
11 Handsonic Perc 1
12 Handsonic Perc 2
13  
14  
15  
16  
17  
18  

General MIDI Patch Settings

Program # Instrument Group
1-8 Piano
9-16 Chromatic Percussion
17-24 Organ
25-32 Guitar
33-40 Bass
41-48 Strings
49-56 Ensemble
57-64 Brass
65-72 Reed
73-80 Pipe
81-88 Synth lead
89-96 Synth pad
97-104 Synth effects
105-112 Ethnic
113-120 Percussive
121-128 Sound effects

Controller numbers 121-127 are reserved for Channel Mode messages. These include:

  • Reset all controllers
  • Local control
  • All Notes Off
  • MIDI Mode messages

Controller number zero (with 32 as the LSB) is defined as the Bank Select.

General MIDI Level 1 Instrument Patch Map
Program Number Instrument Name Program Number Instrument Name
1 Acoustic Grand Piano 65 Soprano Sax
2 Bright Acoustic Piano 66 Alto Sax
3 Electric Grand Piano 67 Tenor Sax
4 Honky-tonk Piano 68 Baritone Sax
5 Electric Piano 1 69 Oboe
6 Electric Piano 2 70 English Horn
7 Harpsichord 71 Bassoon
8 Clavi 72 Clarinet
9 Celesta 73 Piccolo
10 Glockenspiel 74 Flute
11 Music Box 75 Recorder
12 Vibraphone 76 Pan Flute
13 Marimba 77 Blown Bottle
14 Xylophone 78 Shakuhachi
15 Tubular Bells 79 Whistle
16 Dulcimer 80 Ocarina
17 Drawbar Organ 81 Lead 1 (square)
18 Percussive Organ 82 Lead 2 (sawtooth)
19 Rock Organ 83 Lead 3 (calliope)
20 Church Organ 84 Lead 4 (chiff)
21 Reed Organ 85 Lead 5 (charang)
22 Accordion 86 Lead 6 (voice)
23 Harmonica 87 Lead 7 (fifths)
24 Tango Accordion 88 Lead 8 (bass + lead)
25 Acoustic Guitar (nylon) 89 Pad 1 (new age)
26 Acoustic Guitar (steel) 90 Pad 2 (warm)
27 Electric Guitar (jazz) 91 Pad 3 (polysynth)
28 Electric Guitar (clean) 92 Pad 4 (choir)
29 Electric Guitar (muted) 93 Pad 5 (bowed)
30 Overdriven Guitar 94 Pad 6 (metallic)
31 Distortion Guitar 95 Pad 7 (halo)
32 Guitar harmonics 96 Pad 8 (sweep)
33 Acoustic Bass 97 FX 1 (rain)
34 Electric Bass (finger) 98 FX 2 (soundtrack)
35 Electric Bass (pick) 99 FX 3 (crystal)
36 Fretless Bass 100 FX 4 (atmosphere)
37 Slap Bass 1 101 FX 5 (brightness)
38 Slap Bass 2 102 FX 6 (goblins)
39 Synth Bass 1 103 FX 7 (echoes)
40 Synth Bass 2 104 FX 8 (sci-fi)
41 Violin 105 Sitar
42 Viola 106 Banjo
43 Cello 107 Shamisen
44 Contrabass 108 Koto
45 Tremolo Strings 109 Kalimba
46 Pizzicato Strings 110 Bag pipe
47 Orchestral Harp 111 Fiddle
48 Timpani 112 Shanai
49 String Ensemble 1 113 Tinkle Bell
50 String Ensemble 2 114 Agogo
51 SynthStrings 1 115 Steel Drums
52 SynthStrings 2 116 Woodblock
53 Choir Aahs 117 Taiko Drum
54 Voice Oohs 118 Melodic Tom
55 Synth Voice 119 Synth Drum
56 Orchestra Hit 120 Reverse Cymbal
57 Trumpet 121 Guitar Fret Noise
58 Trombone 122 Breath Noise
59 Tuba 123 Seashore
60 Muted Trumpet 124 Bird Tweet
61 French Horn 125 Telephone Ring
62 Brass Section 126 Helicopter
63 SynthBrass 1 127 Applause
64 SynthBrass 2 128 Gunshot

If you would like to take a MIDI file of one of your performances and share it with others then you will want to follow the basic rules of General MIDI, usually referred to as GM or GM2, which is short for General MIDI 2.

Just about any keyboard, digital piano, or organ made over the past couple of years will be GM aware and more than likely will be GM2 capable. To verify that your keyboard supports GM or GM2 first, look in your owner's manual. You should also be able to find the GM or GM2 logos on your keyboard.

Both GM and GM2 formats are nothing more than a standard that allows any piece of equipment displaying the GM or GM2 logo to understand and share data in those formats. That means if you record a song and you select an Acoustic Bass, Piano and Standard Drum Set, you can expect the file to play back on any GM/GM2 instrument with the same instruments - Acoustic Bass, Piano and Standard Drum Set. While the sound quality of those instruments may vary from vendor to vendor, you can expect them to be reasonably close.

General MIDI, created back in 1991 is still in use today. There are 128 instruments in the General MIDI patch map. The instruments are grouped into various instrument families.

General MIDI Level 1 Instrument Families
Program Number Family Name Program Number Family Name
1-8 Piano 65-72 Reed
9-16 Chromatic Percussion 73-80 Pipe
17-24 Organ 81-88 Synth Lead
25-32 Guitar 89-96 Synth Pad
33-40 Bass 97-104 Synth Effects
41-48 Strings 105-112 Ethnic
49-56 Ensemble 113-120 Percussive
57-64 Brass 121-128 Sound Effects

A break out of the instruments available:

General MIDI Level 1 Instrument Patch Map
Program Number Instrument Name Program Number Instrument Name
1 Acoustic Grand Piano 65 Soprano Sax
2 Bright Acoustic Piano 66 Alto Sax
3 Electric Grand Piano 67 Tenor Sax
4 Honky-tonk Piano 68 Baritone Sax
5 Electric Piano 1 69 Oboe
6 Electric Piano 2 70 English Horn
7 Harpsichord 71 Bassoon
8 Clavi 72 Clarinet
9 Celesta 73 Piccolo
10 Glockenspiel 74 Flute
11 Music Box 75 Recorder
12 Vibraphone 76 Pan Flute
13 Marimba 77 Blown Bottle
14 Xylophone 78 Shakuhachi
15 Tubular Bells 79 Whistle
16 Dulcimer 80 Ocarina
17 Drawbar Organ 81 Lead 1 (square)
18 Percussive Organ 82 Lead 2 (sawtooth)
19 Rock Organ 83 Lead 3 (calliope)
20 Church Organ 84 Lead 4 (chiff)
21 Reed Organ 85 Lead 5 (charang)
22 Accordion 86 Lead 6 (voice)
23 Harmonica 87 Lead 7 (fifths)
24 Tango Accordion 88 Lead 8 (bass + lead)
25 Acoustic Guitar (nylon) 89 Pad 1 (new age)
26 Acoustic Guitar (steel) 90 Pad 2 (warm)
27 Electric Guitar (jazz) 91 Pad 3 (polysynth)
28 Electric Guitar (clean) 92 Pad 4 (choir)
29 Electric Guitar (muted) 93 Pad 5 (bowed)
30 Overdriven Guitar 94 Pad 6 (metallic)
31 Distortion Guitar 95 Pad 7 (halo)
32 Guitar harmonics 96 Pad 8 (sweep)
33 Acoustic Bass 97 FX 1 (rain)
34 Electric Bass (finger) 98 FX 2 (soundtrack)
35 Electric Bass (pick) 99 FX 3 (crystal)
36 Fretless Bass 100 FX 4 (atmosphere)
37 Slap Bass 1 101 FX 5 (brightness)
38 Slap Bass 2 102 FX 6 (goblins)
39 Synth Bass 1 103 FX 7 (echoes)
40 Synth Bass 2 104 FX 8 (sci-fi)
41 Violin 105 Sitar
42 Viola 106 Banjo
43 Cello 107 Shamisen
44 Contrabass 108 Koto
45 Tremolo Strings 109 Kalimba
46 Pizzicato Strings 110 Bag pipe
47 Orchestral Harp 111 Fiddle
48 Timpani 112 Shanai
49 String Ensemble 1 113 Tinkle Bell
50 String Ensemble 2 114 Agogo
51 SynthStrings 1 115 Steel Drums
52 SynthStrings 2 116 Woodblock
53 Choir Aahs 117 Taiko Drum
54 Voice Oohs 118 Melodic Tom
55 Synth Voice 119 Synth Drum
56 Orchestra Hit 120 Reverse Cymbal
57 Trumpet 121 Guitar Fret Noise
58 Trombone 122 Breath Noise
59 Tuba 123 Seashore
60 Muted Trumpet 124 Bird Tweet
61 French Horn 125 Telephone Ring
62 Brass Section 126 Helicopter
63 SynthBrass 1 127 Applause
64 SynthBrass 2 128 Gunshot

In the case of the percussion sounds, each percussion sound will be located at the same note location. For example, note number 35 would be the bass drum. When you play note 35 on MIDI channel 10, and you are in GM mode, you will always hear bass drum.

General MIDI Level 1 Percussion Key Map
Note Number Percussion Sound Note Number Percussion Sound
35 Acoustic Bass Drum 59 Ride Cymbal 2
36 Bass Drum 1 60 Hi Bongo
37 Side Stick 61 Low Bongo
38 Acoustic Snare 62 Mute Hi Conga
39 Hand Clap 63 Open Hi Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed Hi Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal Hi-Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open Hi-Hat 70 Maracas
47 Low-Mid Tom 71 Short Whistle
48 Hi-Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinese Cymbal 76 Hi Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap    

Although you have access to 128 instruments in General MIDI mode, you will only have access to one drum kit, the standard drum kit.

GM2 or General MIDI 2 goes further. Introduced in 1999 as an extension to the original GM format, GM2 allows both MIDI channels 10 and 11 for percussion parts along with the very important MIDI bank change command.

Let's go back to the Bass Drum example. In General MIDI, we mentioned that you could only access the standard drum kit. You probably have multiple drum set on your instrument. Depending on the type of music you are performing, selecting the correct drum set can and make or break the performance. To access a different drum set you need to issue a bank change command along with the program number of the desired drum set. In GM2 mode, nine drum kits are available.

GM2 Drum Kits
Program Number Kit
0 Standard Set
1 Room Set
2 Power Set
3 Electric Set
4 Analog Set
5 Jazz Set
6 Brush Set
7 Orchestra Set
8 SFX Set

The same thing is true for your instrument patches. You will be able to select additional banks of instruments by using the bank select command. In GM2, the number of instruments you will have access to grows to 256 instruments compared to only 128 in GM mode. The additional instruments fall under the same instrument families found in GM. For example, in the piano family you will find the addition of Detuned Electric Piano located in Bank 1 Program Number 5 and Detuned Electric Piano2 located in Bank 1 Program Number 6. This is in addition to the Electric Piano 1 and Electric Piano 2 piano offered in GM mode, which are located in Bank 0 in the same program number locations (5 and 6).

To summarize, GM2 files will offer a wider palette of sounds and supporting effects, along with additional control features allowing more editing of the final musical performance.

MIDI Controller Numbers (CC#)

 

Decimal Hex Controller Name
0 00h Bank Select (Controller # 32 is more commonly used)
1 01h Modulation Wheel
2 02h Breath Contoller
3 03h Undefined
4 04h Foot Controller
5 05h Portamento Time
6 06h Data Entry MSB
7 07h Main Volume
8 08h Balance
9 09h Undefined
10 0Ah Pan
11 0Bh 0Ch
12 0Ch Effect Control 1
13 0Dh Effect Control 2
14-15 0E-0Fh Undefined
16-19 10-13h General Purpose Controllers (Nos. 1-4)
20-31 14-1Fh Undefined
32-63 20-3Fh LSB for Controllers 0-31 (rarely implemented)
64 40h Damper Pedal (Sustain) [Data Byte of 0-63=0ff, 64-127=On]
Also used for tap tempo
65 41h Portamento
66 42h Sostenuto
67 43h Soft Pedal
68 44h Legato Footswitch
69 45h Hold 2
70 46h Sound Controller 1 (default: Sound Variation)
71 47h Sound Controller 2 (default: Timbre/Harmonic Content)
72 48h Sound Controller 3 (default: Release Time)
73 49h Sound Controller 4 (default: Attack Time)
74 4Ah Sound Controller 5 (default: Brightness)
75-79 4B-4Fh Sound Controller 6-10 (no defaults)
80-83 50-53h General Purpose Controllers (Nos. 5-8)
84 54h Portamento Control
85-90 55-5Ah Undefined
91 5Bh Effects 1 Depth (previously External Effects Depth)
92 5Ch Effects 2 Depth (previously Tremolo Depth)
93 5Dh Effects 3 Depth (previously Chorus Depth)
94 5Eh Effects 4 Depth (previously Detune Depth)
95 5Fh Effects 5 Depth (previously Phaser Depth)
96 60h Data Increment
97 61h Data Decrement
98 62h Non-Registered Parameter Number LSB
99 63h Non-Registered Parameter Number LSB
100 64h Registered Parameter Number LSB
101 65h Registered Parameter Number MSB
102-120 66-78h Undefined
Channel Mode Messages
121 79h Reset All Controllers
122 7Ah Local Control
123 7Bh All Notes Off
124 7Ch Omni Off
125 7Dh Omni On
126 7Eh Mono On (Poly Off)
127 7Fh Poly On (Mono Off)