The Basic Basics of MIDI

HRmusic90

21st Century Digital Boy
So, I'm pretty new to MIDI in general. I've been playing guitar for years, but only recently got a keyboard controller - the Akai Max25. I've been trying my best to research and get the hang of the lingo, but I can't seem to find anything that sorts it out well. All the sites that I look at throw around the terminology as if I already know what it means.
For example, what are the differences between programs, banks and patches? It makes it confusing for me when every source mentions that "drums are typically channel 10", but sound map listings show 10 as "Glockenspiel". Which 10 applies to which??
 
I've been trying my best to research and get the hang of the lingo, but I can't seem to find anything that sorts it out well. All the sites that I look at throw around the terminology as if I already know what it means.

MIDI was invented in the 1970s by real nerds with pocket protectors; you won't find anything 'easy'.

Amazon has a number of basic midi books (look around in your local bookstore too)

Tweak's MIDI basics is still up, but he passed away a few years ago and isn't updating his site anymore.

Gecko's link to Sound-on-Sound magazine is good start; they have a TON of issues on line you can search through with VERY good articles.
 
Thank you for that. That was helpful, but I still feel uncertain about some things. From what I get from the article, it sounds like "program" means the same thing as "patch", so a program change really means a patch change. And it sounds like "banks" contain "patches". Is that right?
 
Last edited:
MIDI was invented in the 1970s by real nerds with pocket protectors; you won't find anything 'easy'.

Amazon has a number of basic midi books (look around in your local bookstore too)

Tweak's MIDI basics is still up, but he passed away a few years ago and isn't updating his site anymore.

Gecko's link to Sound-on-Sound magazine is good start; they have a TON of issues on line you can search through with VERY good articles.

I actually checked out Tweak's page before I made my post. I liked it, but it still wasn't quite broken down to a level that I grasped (which is not to imply that it's the article's fault :p)
 
So, I'm pretty new to MIDI in general. I've been playing guitar for years, but only recently got a keyboard controller - the Akai Max25. I've been trying my best to research and get the hang of the lingo, but I can't seem to find anything that sorts it out well. All the sites that I look at throw around the terminology as if I already know what it means.
For example, what are the differences between programs, banks and patches? It makes it confusing for me when every source mentions that "drums are typically channel 10", but sound map listings show 10 as "Glockenspiel". Which 10 applies to which??

I would look for a book called "The MIDI Files" by Rob Young.

The shortest explanation of MIDI is that it is essentially a digital piano roll. It is a set of software protocols that tells a MIDI-enabled device what to do and when to do it.

About "programs/banks/patches"........ Yes and no. The first MIDI addressable devices had a single bank of sounds because RAM was tiny and expensive. "Banks" became a requirement to gain access to expanded sound libraries as memory became bigger.

MIDI commands are organized into various hierarchies, i.e. MIDI channel, program/patch, and control change are the main ones people use.

A MIDI port is the 5-pin DIN connector on your keyboard and interface. A single port can carry up to 16 MIDI Channels. Inputs go to outputs and outputs go to inputs, GENERALLY SPEAKING. But it is also possible to create MIDI feedback loops so pay attention to how you chain things together, especially when using virtual ports like MIDI-YOKE or software MIDI matrices. A MIDI port could also be over a USB cable, and in that format could even be more than 1 port over USB. But let's not get into that yet...

"Drums are typically channel 10" is a reference to assigning different instruments to respond to control commands (note-on/note-off, which note to sound etc) on a specific MIDI channel. IHNFI how drums wound up being on MIDI channel 10, but that somehow became an industry standard. You can put drums on any MIDI channel you want, the channels all do the same functions.

The "sound map" concept grew from all the different manufacturers assigning whatever instruments to whatever program number (1-128) to the point that the biggest manufacturers agreed to develope a common standard. That common standard for programs/patches is known as General MIDI. If you read the protocol for GM it says that Patch 1 will always be an acoustic piano. GM Patch 10 will always be a glockenspiel. Also, just for clarity, you need to understand that while the big guys like Roland and Yamaha and the rest helped come up with the GM standard they also each use their own stanard. This is where the idea of MIDI Mapping comes in, so you can program your sequencer to automatically play back patches on devices from different manufacturers and have them play the patch you expect to hear when you input any given patch number.

Okay...... clear as mud, right?

So lets say you want to create some sequences and have them all play back at the same time............

Track one is piano. MIDI channel 1.

Track 2 is a guitar patch. MIDI channel 2.

Track 3 is a bass line. MIDI channel 3.

Track 4 is a simple rhythm section. MIDI channel 10 (because it's the industry standard! :p)

So in your sequencer (like Reaper or Sonar or whatever) you are going to assign these various tracks to whatever hardware or software sound module you are using for your sounds.

In your DAW sequencer you dig that you are gonna have TWO tracks for each instrument, right? You are gonna have a MIDI track that contains all the "commands" you program into that track when you record and edit the sequence. What notes to play, when to play them, pitch bends, whatever. And then you are gonna have an AUDIO track so your soft synth has a place to output the sound to and Reaper/Sonar/whatever has a track assigned to record the audio to.



That's the basics of how it works.
 
Last edited:
"Drums are typically channel 10" is a reference to assigning different instruments to respond to control commands (note-on/note-off, which note to sound etc) on a specific MIDI channel. IHNFI how drums wound up being on MIDI channel 10, but that somehow became an industry standard. You can put drums on any MIDI channel you want, the channels all do the same functions.

The other day someone was commenting about MIDI in another forum and she said that Channel 10 is always transmitted first because the drums are the most time-critical part of the MIDI data. I hadn't heard that before, but it makes sense (if it's true).
 
The other day someone was commenting about MIDI in another forum and she said that Channel 10 is always transmitted first because the drums are the most time-critical part of the MIDI data. I hadn't heard that before, but it makes sense (if it's true).

I've heard that as well, and maybe it was true once in the very early days of low capability computers. But midi data is very sparse, and time-criticalness is not really a factor. When I ran Midi on my old Amiga, and before I learnt about GM, I put drums on through channels without problem.

It kind of makes sense, but I'm thinking that it is more urban legend.
 
About "programs/banks/patches"........ Yes and no. The first MIDI addressable devices had a single bank of sounds because RAM was tiny and expensive. "Banks" became a requirement to gain access to expanded sound libraries as memory became bigger.

<snip>

The "sound map" concept grew from all the different manufacturers assigning whatever instruments to whatever program number (1-128) to the point that the biggest manufacturers agreed to develope a common standard. That common standard for programs/patches is known as General MIDI. If you read the protocol for GM it says that Patch 1 will always be an acoustic piano. GM Patch 10 will always be a glockenspiel. Also, just for clarity, you need to understand that while the big guys like Roland and Yamaha and the rest helped come up with the GM standard they also each use their own stanard. This is where the idea of MIDI Mapping comes in, so you can program your sequencer to automatically play back patches on devices from different manufacturers and have them play the patch you expect to hear when you input any given patch number.

Okay...... clear as mud, right?

<snip>

Definitely clearer... Thanks... So, is that to say that any MIDI-standard-abiding syth out there will have these default instruments in a default bank? And that what makes synths different are the additional banks of their own instruments?
 
Last edited:
I've heard that as well, and maybe it was true once in the very early days of low capability computers. But midi data is very sparse, and time-criticalness is not really a factor. When I ran Midi on my old Amiga, and before I learnt about GM, I put drums on through channels without problem.

It kind of makes sense, but I'm thinking that it is more urban legend.

The drums-on-channel-10 thing actually seems kind of fitting, but still arbitrary. I think because the '1' and the '0' remind me of a drum stick and snare... But then I can also be odd...
 
The drums-on-channel-10 thing actually seems kind of fitting, but still arbitrary. I think because the '1' and the '0' remind me of a drum stick and snare... But then I can also be odd...

Other instruments can be selected by their program (or "patch") numbers, but the General MIDI ("GM") specification had no program number for the "Standard Drum Kit," thus there was no way to select the drum kit! :facepalm: :wtf: Instead, they decided Channel 10 would be used for the drums-- so the note on/off events on Channel 10 were interpreted as controlling specific types of drums, cymbals, etc. rather than playing different notes of an instrument as was the case on other channels.

However, companies such as Roland and Yamaha started extending MIDI-- Roland came out with their "GS" standard and Yamaha came out with their "XG" standard. One of the ways they extended the GM standard was by adding more banks for additional instrument sounds, drum kits, and sound effects kits. This eventually led to the development of the General MIDI Level 2 ("GM2") standard, and the old GM standard became "Level 1" ("GM1").

The creation of the Bank Select MSB and Bank Select LSB controls provided a way to select the Standard Drum Kit-- or some alternate drum kit-- by specifying the desired Bank Select MSB, Bank Select LSB, and Program Change. That means drums are no longer tied to Channel 10 as they were in the beginning, since a drum kit can now be selected on any channel just like any other instrument patch. :cool: :thumbs up:

Edit: Correction-- the GM2 standard apparently limits drum kits to Channel 10 and Channel 11, whereas the GS and XG standards allow a drum kit to be used on any channel.
 
Last edited:
Definitely clearer... Thanks... So, is that to say that any MIDI-standard-abiding syth out there will have these default instruments in a default bank? And that what makes synths different are the additional banks of their own instruments?

It's a little more complicated than that.

Modern hardware synths will likely have a combination of samples and FM and/or subtractive or digitally modeled sounds. More expensive digital synths will give you access to the "timbres" or building blocks that the manufacturer uses to create layered patches. Those would include the high-end Yamaha and Roland synths, commonly advertised as "workstations" because they are designed to have onboard sequencing and the ability to record entire multi-track songs and store them on some sort of medium. The advantage of those higher end synths include better hammer-action keyboards and the ability to create your own patches from essentially scratch. Many will even allow you to sample your own timbres.

On the other end of the spectrum are full analog synths, which can be either monophonic or polyphonic. In those synths the MIDI functions are used to recall and manipulate patches and control functions i.e. filter cutoff, because the audio signal path is all analog. Which means to say that a Moog isn't playing back a sample when you hit the key, it is triggering an actual oscillator that forms the basis for whatever sound it is you are trying to achieve, and at the same time the keystroke is activating ADSR circuits for both the filter and the voltage controlled amplifier.

Referring back to your OP I see that you have an Akai that came with Ableton Lite. I've never used Ableton, but understand it is a pretty powerful DAW. Have you been able to program any of your own sounds or do stuff like alter parameters using the soft synths in Ableton?
 
It's a little more complicated than that.

Modern hardware synths will likely have a combination of samples and FM and/or subtractive or digitally modeled sounds. More expensive digital synths will give you access to the "timbres" or building blocks that the manufacturer uses to create layered patches. Those would include the high-end Yamaha and Roland synths, commonly advertised as "workstations" because they are designed to have onboard sequencing and the ability to record entire multi-track songs and store them on some sort of medium. The advantage of those higher end synths include better hammer-action keyboards and the ability to create your own patches from essentially scratch. Many will even allow you to sample your own timbres.
Ah, that's well beyond where I'm at right now...

On the other end of the spectrum are full analog synths, which can be either monophonic or polyphonic. In those synths the MIDI functions are used to recall and manipulate patches and control functions i.e. filter cutoff, because the audio signal path is all analog. Which means to say that a Moog isn't playing back a sample when you hit the key, it is triggering an actual oscillator that forms the basis for whatever sound it is you are trying to achieve, and at the same time the keystroke is activating ADSR circuits for both the filter and the voltage controlled amplifier.
That about where I am now. I want to get the hang of the terminology so that I have a clue as to what all the control codes do.

Referring back to your OP I see that you have an Akai that came with Ableton Lite. I've never used Ableton, but understand it is a pretty powerful DAW. Have you been able to program any of your own sounds or do stuff like alter parameters using the soft synths in Ableton?

I'm actually not using Ableton. I've been a loyal Acid user since 2002. Acid comes with a default DLS soft synth (which sounds okay), and I only recently installed the Garritan Aria plug-in - an orchestra-based library - which sounds awesome. I have my Akai basically working. The keys do generate sounds and the pitch and mod wheels do what they're supposed to, but I haven't accomplished much beyond that. I haven't been able to configure any pads or faders. And reading my instruction book doesn't do much good because I'm so unfamiliar with the lingo.
 
I'm actually not using Ableton. I've been a loyal Acid user since 2002. Acid comes with a default DLS soft synth (which sounds okay), and I only recently installed the Garritan Aria plug-in - an orchestra-based library - which sounds awesome. I have my Akai basically working. The keys do generate sounds and the pitch and mod wheels do what they're supposed to, but I haven't accomplished much beyond that. I haven't been able to configure any pads or faders. And reading my instruction book doesn't do much good because I'm so unfamiliar with the lingo.

You might also check out some of the tutorials on Youtube. There should be some that explain how to configure MIDI controllers to various soft synths. I have an MPK-49 and the manual sucks so I get where you are coming from. Some synths like Toontracks SD2 have a function where you can simply pick a parameter then hit any controller button/fader/pad and assign that function to the pad.
 
Definitely clearer... Thanks... So, is that to say that any MIDI-standard-abiding syth out there will have these default instruments in a default bank? And that what makes synths different are the additional banks of their own instruments?

There are different levels of MIDI standards, plus different extensions of MIDI.

To conform to the General MIDI (GM) standard-- a.k.a. General MIDI Level 1 (GM1)-- a keyboard must have at least 24-note polyphony (16-note polyphony for the melodic voices plus 8-note polyphony for the drums), must have the 128 standard GM instruments (although the exact sounds aren't specified-- e.g., Program 1 must be "[Acoustic] Grand Piano" but its precise sound isn't specified), must have the standard GM drum kit, must recognize and handle the 16 standard channels-- with Channel 10 being used for the drum kit-- and must recognize and handle the standard messages defined by the GM specs (which includes the definitions of the notes-- e.g., note 60 is Middle C, and note 69 is A above Middle C, with a frequency of 440 Hz).

To conform to the General MIDI Level 2 (GM2) standard, a keyboard must have at least 32-note polyphony (16-note polyphony for the melodic voices plus 16-note polyphony for the drums), must have the 256 standard GM2 instruments, must have the 9 standard GM2 drum kits, must recognize and handle the 16 standard channels-- with Channel 10 and Channel 11 being used for drum kits-- and must recognize and handle the standard messages defined by the GM2 specs.

There's also a "GM Lite" standard with reduced requirements, for mobile phones or other devices that have more limited processing power-- but we can ignore it, since we're interested in keyboards, not cell phones!

Then there are the extensions of MIDI-- Roland's GS standard, plus Yamaha's XG standards (which comes in different flavors, such as XG Level 1, XG Level 2, XG Level 3, and XGlite).

In order for a keyboard to be advertised/identified as "GM compatible," it must at least conform to the GM standard, but it may certainly go beyond that. Likewise, in order to be called "GM2 compatible," or "GS compatible," or "XG compatible," or "XGlite compatible," a keyboard must at least conform to the minimum requirements for those standards, but may also go beyond those requirements.

As far as the "patches" are concerned, the 128 GM-compatible patches must be under Bank Select MSB 0 and Bank Select LSB 0. Likewise, the 256 GM2-compatible patches must be under specific Bank Select and Program Change numbers. The GS and XG standards also use specific Band Select and Program Change numbers-- e.g., a Yamaha XGlite-compatible keyboard might not have all of the standard XG voices, but the XG voices that it does have will have specific Band Select and Program Change numbers.

However, a keyboard that doesn't call itself "GM compatible" doesn't need to use the Program Change numbers specified by the GM standard-- e.g., the Roland Lucina AX-09 synthesizer does have a "Grand Piano" patch, but instead of being selected with MSB 0, LSB 0, PC 1 (as in the GM standard), it's selected with MSB 87, LSB 0, PC 25! So the Lucina AX-09 may still be a "MIDI compatible" synth, but it isn't a "GM compatible" synth.

Edit: PS: A word of warning regarding Program Change and Channel numbers-- the actual numeric values which are used within the MIDI data/code/messages/events are numbered from 0 on up, whereas keyboard documents (e.g., owner's manuals) and MIDI software (e.g., DAWs) frequently number them from 1 on up. This can be extremely confusing if you aren't paying attention to which numbering scheme a particular document or software program is using. For example, suppose your keyboard's owner's manual says that the "Dulcimer" patch is selected by MSB 0, LSB 0, PC 16. You want to edit a MIDI song file so it plays with the "Dulcimer" voice on your keyboard, so you load the MIDI file into your DAW and change it to use MSB 0, LSB 0, PC 16-- except instead of the song playing with the "Dulcimer" voice, you get the "Drawbar Organ" voice instead! That's because your keyboard's owner's manual used Program Change numbers of 1 through 128, whereas the DAW must have used Program Change numbers of 0 through 127. I like to use the abbreviations "PC0" and "PC1" to indicate which numbering system is being used-- i.e., "PC0" means the PC numbers go from 0 to 127, whereas "PC1" means the PC numbers go from 1 to 128. You can easily convert from one to the other by adding or subtracting 1 as appropriate-- PC0 = PC1 - 1, and PC1 = PC0 + 1. For example, if your manual uses the PC1 scheme but your DAW uses the PC0 scheme, you'll need to use MSB 0, LSB 0, PC 15 (not 16) to select the "Dulcimer" voice in the MIDI file.

Likewise, the MIDI Channel numbers are numbered from 0 through 15 within the actual MIDI code, but these are frequently referred to as Channel 1 through Channel 16.
 
Last edited:
Ah! Thanks for all that! ...Wow this stuff can get pretty dense.

It looks like Acid uses 0-127. I just selected "Trombone" which is 58 on Tweak's GM sound map, but it shows up as 57 in ACID.
 
Wait... is it the synth or the DAW that chooses the numbering?

Neither and both. You are sending a program number from the DAW to the synth (the name is just for humans). The mapping name is just telling you what it is, which may be correct. To know for sure, look at your synth book and it will tell you what numbers really means for voicing (Most follow GM MIDI). Then when you set that program number in your DAW, it will send a data signal to let the hardware know, here is the voicing for the following notes, until it receives another programming signal.

It is a bit a little more than that, but it is more or less in that direction.
 
Back
Top