TSR Wiki > Study Help > Subjects and Revision > Revision Notes > Music Technology > MIDI
MIDI (short for Musical Instrument Digital Interface) is a music industry standard communications protocol that lets MIDI instruments and sequencers (or computers running sequencer software) talk to each other to play and record music.
The General MIDI Specification
The General MIDI (GM) specification was introduced to ensure improved compatibility between different MIDI devices such as sound modules, synthesisers and keyboards. There are a set of requirements and criterion for MIDI devices aimed at ensuring consistent playback performance on all instruments bearing the GM logo. Some of the requirements include 24-voice polyphony, a standardised group (and location) of sounds, as well as defining a limited number of controllers. For example, patch #17 will always be a drawbar organ sound on all General MIDI instruments. Continuous controller number 7 will control its volume. Music written and sequenced for General MIDI should play back with the same instrument sounds on any GM sound source.
The group of 128 sounds / timbres / programs / patches / are numbered 0–127 or 1–128. They are arranged in instrument groups / categories / families. There are 16 instrument groups, with 8 sounds in each. Instrument / timbre program numbers are universally the same.
GM devices must feature the following to be GM compatible:
- The General MIDI standard sound set
- Should be 16-part multi-timbral/able to play back on 16 channels simultaneously
- Device should be able to play at least 24 notes simultaneously/should be minimum of 24 note polyphony
- Drums kit layout across keyboard should match standard GM drum map
- Channel 10 should always be reserved for drums
- Must be able to respond to controllers, such as 1 (modulation), 7 (main volume), 10 (pan), 11 (expression), 64 (sustain pedal), 121 (reset controllers) and 123 (all notes off)
- Pitch bend range should default to (+/-) 2 semitones
- Respond to (SysEx) GM reset command
Multitimbrality
A multitimbral sound-making device (such as a sampler, sound module or keyboard) has the ability to play two or more sounds at the same time. Each sound is able to be configured to respond to a different channel of MIDI information.
MIDI Controllers
| MIDI Controller
| Name
|
| 0
| Bank Select (MSB)
|
| 1
| Mod Wheel (coarse/MSB)
|
| 2
| Breath Controller (coarse/MSB)
|
| 4
| Foot Controller (coarse/MSB)
|
| 5
| Portamento Time (coarse/MSB)
|
| 6
| Data Entry (coarse/MSB)
|
| 7
| Volume (coarse/MSB)
|
| 8
| Balance (coarse/MSB)
|
| 10
| Pan (coarse/MSB)
|
| 11
| Expression Controller (coarse/MSB)
|
| 12
| Effect Control 1 (coarse/MSB)
|
| 13
| Effect Control 2 (coarse/MSB)
|
| 16
| General Purpose Slider 1
|
| 17
| General Purpose Slider 2
|
| 18
| General Purpose Slider 3
|
| 19
| General Purpose Slider 4
|
| 32
| Bank Select (LSB)
|
| 33
| Modulation Wheel (fine/LSB)
|
| 34
| Breath Controller (fine/LSB)
|
| 36
| Foot Controller (fine/LSB)
|
| 37
| Portamento Time (fine/LSB)
|
| 38
| Data Entry (fine/LSB)
|
| 39
| Volume (fine/LSB)
|
| 40
| Balance (fine/LSB)
|
| 42
| Pan (fine/LSB)
|
| 43
| Expression Controller (fine/LSB)
|
| 44
| Effect Control 1 (fine/LSB)
|
| 45
| Effect Control 2 (fine/LSB)
|
| 64
| Sustain
|
| 65
| Portamento
|
| 66
| Sostenuto Pedal
|
| 67
| Soft Pedal
|
| 68
| Legato Pedal
|
| 69
| Hold 2 Pedal
|
| 70
| Sound Variation
|
| 71
| Sound Timbre
|
| 72
| Sound Release Time
|
| 73
| Sound Attack Time
|
| 74
| Sound Brightness
|
| 75
| Sound Control 6
|
| 76
| Sound Control 7
|
| 77
| Sound Control 8
|
| 78
| Sound Control 9
|
| 79
| Sound Control 10
|
| 80
| General Purpose 5
|
| 81
| General Purpose 6
|
| 82
| General Purpose 7
|
| 83
| General Purpose 8
|
| 91
| Reverb Level
|
| 92
| Tremolo Level
|
| 93
| Chorus Level
|
| 94
| Celeste Level (Detune)
|
| 95
| Phaser Level
|
| 96
| Data Increment (Data Entry +1)
|
| 97
| Data Decrement (Data Entry -1)
|
| 98
| Non-Registered Parameter LSB
|
| 99
| Non-Registered Parameter MSB
|
| 100
| Registered Parameter LSB
|
| 101
| Registered Parameter MSB
|
| 120
| All Sound Off
|
| 121
| Reset All Controllers
|
| 122
| Local Control
|
| 123
| All Notes Off
|
| 124
| Omni Mode Off
|
| 125
| Omni Mode On
|
| 126
| Mono Mode On
|
| 127
| Poly Mode On
|
Types
- A continuous controller is a MIDI message capable of transmitting a range of values between 0 and 127, therefore having 128 possible states. Examples include modulation (1), main volume (7), pan (10) expression (11), reverb (91) and chorus (93).
- A switch controller only responds to values of 0 and 127, where 0 means the controller is turned off and 127 means it is turned on. Examples include sustain (64), sostenuto (66) and legato pedal (68).
- Pitchbend has been assigned its own dedicated MIDI type message. There are two different range of values for pitchbend - 0 to 16383 or -8192 to 8191. The lower the value, the lower the pitch, and the higher the value, the higher the pitch. Pitchbend uses two data variables to create a greater range of possible states. The MSB (Most Significant Byte) and LSB (Least Significant Byte) can be multiplied together (128x128) to give the total number of states, which is 16384.
GM Sound Set
Each instrument/sound has been given its own program change number. For example, PC#1 would correspond to the acoustic grand piano. The sounds are numbered either 0-127 or 1-128. There are 16 different family groups comprising of eight different sounds each. Note that the timpani sound (#48) is listed in the Strings section instead of the Chromatic Percussion section.
| #
| Instrument Name
| #
| Instrument Name
|
| 1
| Acoustic Grand Piano
| 5
| Electric Piano 1
|
| 2
| Bright Acoustic Piano
| 6
| Electric Piano 2
|
| 3
| Electric Grand Piano
| 7
| Harpsichord
|
| 4
| Honky-Tonk Piano
| 8
| Clavinet
|
| #
| Instrument Name
| #
| Instrument Name
|
| 9
| Celesta
| 13
| Marimba
|
| 10
| Glockenspiel
| 14
| Xylophone
|
| 11
| Music Box
| 15
| Tubular Bells
|
| 12
| Vibraphone
| 16
| Dulcimer
|
| #
| Instrument Name
| #
| Instrument Name
|
| 17
| Drawbar Organ
| 21
| Reed Organ
|
| 18
| Percussive Organ
| 22
| Accordion
|
| 19
| Rock Organ
| 23
| Harmonica
|
| 20
| Church Organ
| 24
| Tango Accordion
|
| #
| Instrument Name
| #
| Instrument Name
|
| 25
| Acoustic Guitar (Nylon)
| 29
| Electric Guitar (Muted)
|
| 26
| Acoustic Guitar (Steel)
| 30
| Overdriven Guitar
|
| 27
| Acoustic Guitar (Jazz)
| 31
| Distorted Guitar
|
| 28
| Electric Guitar (Clean)
| 32
| Guitar Harmonics
|
| #
| Instrument Name
| #
| Instrument Name
|
| 33
| Acoustic Bass
| 37
| Slap Bass 1
|
| 34
| Electric Bass (Finger)
| 38
| Slap Bass 2
|
| 35
| Electric Bass (Pick)
| 39
| Synth Bass 1
|
| 36
| Fretless Bass
| 40
| Synth Bass 2
|
| #
| Instrument Name
| #
| Instrument Name
|
| 41
| Violin
| 45
| Tremolo Strings
|
| 42
| Viola
| 46
| Pizzicato Strings
|
| 43
| Cello
| 47
| Orchestral Harp
|
| 44
| Contrabass
| 48
| Timpani
|
| #
| Instrument Name
| #
| Instrument Name
|
| 49
| Strings Ensemble 1
| 53
| Choir Aahs
|
| 50
| Strings Ensemble 2
| 54
| Choir Oohs
|
| 51
| Synth Strings 1
| 55
| Synth Voice
|
| 52
| Synth Strings 2
| 56
| Orchestral Hit
|
| #
| Instrument Name
| #
| Instrument Name
|
| 57
| Trumpet
| 61
| French Horn
|
| 58
| Trombone
| 62
| Brass Section
|
| 59
| Tuba
| 63
| Synth Brass 1
|
| 60
| Muted Trumpet
| 64
| Synth Brass 2
|
| #
| Instrument Name
| #
| Instrument Name
|
| 65
| Soprano Sax
| 69
| Oboe
|
| 66
| Alto Sax
| 70
| English Horn
|
| 67
| Tenor Sax
| 71
| Bassoon
|
| 68
| Baritone Sax
| 72
| Clarinet
|
| #
| Instrument Name
| #
| Instrument Name
|
| 73
| Piccolo
| 77
| Blown Bottle
|
| 74
| Flute
| 78
| Shakuhachi
|
| 75
| Recorder
| 79
| Whistle
|
| 76
| Pan Flute
| 80
| Ocarina
|
| #
| Instrument Name
| #
| Instrument Name
|
| 81
| Lead 1 (Square)
| 85
| Lead 5 (Charang)
|
| 82
| Lead 2 (Sawtooth)
| 86
| Lead 6 (Voice)
|
| 83
| Lead 3 (Calliope)
| 87
| Lead 7 (Fifths)
|
| 84
| Lead 4 (Chiff)
| 88
| Lead 8 (Bass & Lead)
|
| #
| Instrument Name
| #
| Instrument Name
|
| 89
| Pad 1 (New Age)
| 93
| Pad 5 (Bowed)
|
| 90
| Pad 2 (Warm)
| 94
| Pad 6 (Metallic)
|
| 91
| Pad 3 (Polysynth)
| 95
| Pad 7 (Halo)
|
| 92
| Pad 4 (Choir)
| 96
| Lead 8 (Sweep)
|
| #
| Instrument Name
| #
| Instrument Name
|
| 97
| FX 1 (Rain)
| 101
| FX 5 (Brightness)
|
| 98
| FX 2 (Soundtrack)
| 102
| FX 6 (Goblins)
|
| 99
| FX 3 (Crystal)
| 103
| FX 7 (Echoes)
|
| 100
| FX 4 (Atmosphere)
| 104
| FX 8 (Sci-Fi)
|
| #
| Instrument Name
| #
| Instrument Name
|
| 105
| Sitar
| 109
| Kalimba
|
| 106
| Banjo
| 110
| Bag Pipe
|
| 107
| Shamisen
| 111
| Fiddle
|
| 108
| Koto
| 112
| Shanai
|
| #
| Instrument Name
| #
| Instrument Name
|
| 113
| Tinkle Bell
| 117
| Taiko Drum
|
| 114
| Agogo
| 118
| Melodic Drum
|
| 115
| Steel Drums
| 119
| Synth Drum
|
| 116
| Woodblock
| 120
| Reverse Cymbal
|
| #
| Instrument Name
| #
| Instrument Name
|
| 121
| Guitar Fret Noise
| 125
| Telephone Ring
|
| 122
| Breath Noise
| 126
| Helicopter
|
| 123
| Seashore
| 127
| Applause
|
| 124
| Bird Tweet
| 128
| Gunshot
|
Synchronisation
Music synchronisation is the process of getting musical events recorded on two separate recording devices (such as audio tracks on a multi-track tape recorder and MIDI events on a sequencer) to play together in time.
SMPTE
The SMPTE (which is an acronym for the Society of Motion Picture and Television Engineers) timecode signal carries clock information in the form of hours, minutes, seconds and frames.
MTC
MIDI Time Code (MTC) is a form of time code representing real time in hours, minutes, seconds, frames, subframes, and transmitted over MIDI. MTC can also be described as a way of sending SMPTE time code over MIDI cables. Like all forms of time code, MTC is designed to allow various pieces (in this case MIDI-equipped) of equipment to synchronise together.
Quantisation
In sequencing this is the process of aligning a set of musical notes to a particular setting. This results in notes being set on beats and on exact fractions of beats. MIDI sequencers typically include quantisation in their manifest of edit commands. In this case, the dimensions of this timing grid are set beforehand. When one instructs the music application to quantise a certain group of MIDI notes in a song, the program moves each note to the closest point on the timing grid.
The quantise setting is usually determined by whatever is the shortest note in the relevant section of music. For example, if the shortest note is a semiquaver, a quantise setting of 1/16 would be used to align all the notes strictly in time.
MIDI Data
The event list of a particular track displays:
- Start and end times for the MIDI events
- Program change numbers (the instrumental sound is set)
- Note names, the octave in which the note is being played (for example, C3 is middle C) and its velocity
- MIDI controllers, if applicable
- Pitchbend values (Data 1 is the LSB (Least Significant Bit), whereas Data 2 is the MSB (Most Significant Bit)
- Systems Exclusive (SysEx) commands
A MIDI sequence can also contain a 'header section' a bar or so at the beginning before the actual song begins. This contains a number of controller data instructions for that track.
The start times of the MIDI events, including program changes and controllers, are always staggered and not listed at the same point in time. This is because MIDI is a serial protocol, therefore only one message can be transmitted at a time. If the events are not staggered some of the data may not be transmitted correctly. This could result in data drop-out, corruption or MIDI choke. Exactly what happens when MIDI choke occurs depends on the system, but at the very least it is likely that the timing of note on/off messages will be severely disrupted. In an extreme case it is possible that the MIDI controller would crash, and the system would be brought to a halt.
MIDI Files
There are three different types of MIDI file, but only two of these types are commonly used today.
- Type 0 (single track) - all MIDI channels are combined into one track (MIDI channel assignments and other information are not lost)
- Type 1 (multi-track) - each track is kept separate
- Type 2 - pattern files, but are rarely seen nowadays
Comments
These notes are aimed at students studying GCE Edexcel Music Technology