
Midi Program
MIDI Tools is a nifty application, providing (as its name implies) various MIDI-related tools: Real-time MIDI input and output monitors. Capturing, filtering and saving MIDI input messages. Windows edition only: The creation of MIDI thru connections (e.g. From/to virtual MIDI I/O ports). A virtual MIDI controller board, capable of receiving and sending control change messages.
So you want to upgrade your music making arsenal and join in on the MIDI keyboard fun? This is one of the best ideas you’ve had since deciding to make music in general! MIDI keyboard controllers are becoming more of the norm as time goes on, especially with the continuing rise of digital setups, whether it’s for the home, semi-pro or professional studio. As we saw in our top 10 MIDI keyboard controllers article, there are numerous models and brands out there that offer very nice makes of keyboards to give us some options. But which one is best for those of us who are just starting out? What’s up with all of these knobs, encoders, faders, and crazy software bundles? Which one is best for beginners? Let’s take a look at a few choices.
Things to keep in mind for beginner MIDI controllers
- Your budget!
- Which extra features do you actually need?
- Do you want some software that comes along with it? Most come with bundles
- Find a keyboard that is easy to map with your software
- MIDI keyboards come in various different key counts. How many keys do you truly need?
Firstly, as always with beginner music gear, your budget is obviously important. To our avail, a lot of the popular brands offer simple, more basic solutions for beginners or those who don’t want any of the fancy additional functions or software. We’ve seen some very solid keyboards for beginners start around $100.
Although it does depend on the musician, we know many just starting out who try to steer away from keyboards that have numerous other assignable options, such as faders, knobs, buttons, thumb-sticks or pedal inputs…unless these pertain to you. If you are on the fence, we’d ultimately say go for it because learning how to use them only make your workflow better in the long run. These are all however extra features some keyboards justify their high price with at times. Although, we list a few that have some extra features that still come in an affordable price as well. We try to find the perfect middle ground of a keyboard without fancy stuff yet still provide a solid key-bed or pad-make at an affordable price.
Software bundles are becoming more popular with newer versions of MIDI keyboards. Some with digital audio workstations (check out that link if you need some software to start with) such as Ableton Live Lite, others with virtual instruments for sounds and effects plug-ins…but do you really need these? If you’re just starting out, you just may! Ableton is a great way to start if you’re looking for a software to make music with. If this is so, try to grab a keyboard that offers the bundle you’ll need — it’ll save you some money, especially if you’re starting to build your own studio and will need more gear later down the road.
MIDI mapping used to be a difficult task to get the hang of. Fortunately today, it has become so big that most programs map with controllers flawlessly. Some keyboards even come with their own ‘mapping’ software which makes the process even more smooth. If that’s a concern for you, we give you a few options of keyboards that provide this. Although, if you go with a model that doesn’t necessarily have an extra mapping feature, you will just have to do so through your digital audio workstation (DAW – the program for music making), which may take some learning, but it isn’t impossible. Most DAWs are completely fine with any piece of gear nowadays, unless the equipment is outdated (pre-2012).
Key counts are important to take into consideration. The most widespread forms of key counts come in either 25, 49, 61 or 88. This is again where personal preference comes in — how big of a keyboard player are you? Do you have enough space in your setup/desk? Many keyboarders will not go under 49-keys because they’re efficient in playing and need to use both hands. I’ve also heard of some saying 61 is the only way to go as it gives them an even bigger range for playing. An 88-key MIDI keyboard is rather rare, but it’s an option and some even swear by this because it is the default count for a piano. On the other hand, a 25-key keyboard is difficult to use both hands with, but if you want a smaller solution and can get away with it they are ideal for those looking to save money.
Here are some of our key-count specific guides:
We recommend going with 49 if you’re a beginner — it’s not too overkill, is just enough to still allow you to play with two hands, and is typically within the medium price range of keyboard models. And the winner goes to…
Our pick for best MIDI keyboard for beginners:
The M-Audio Oxygen 49
After sifting through the beginner keyboards in the market, we went with something around the middle-tier of including the essential MIDI controller functions, the stability and build of the keyboard, as well as the overall price in general. This model also includes a nice little software bundle that isn’t too overkill. M-Audio music equipment is one of our favorite MIDI controller creators and their Oxygen model is in our opinion a great middle-ground to start if you are a MIDI beginner. Let’s take a look at the Oxygen in-depth, our pick as the best MIDI keyboard for beginners.
Overall build and stability
The Oxygen’s key bed is rather nice for a cheap retail price, and in our opinion ideal for a beginners MIDI keyboard. They aren’t necessarily the make of a real piano (called hammer action or graded hammer) or ‘Italian made’ like some of the other keyboards in the market claim (going for $500 or so retail), but they get the job done and will last you quite a few years as a long-term investment. For a beginner, they’re more than enough. The keys are ‘synth action‘, which means they are a bit springier than semi or full-weighted keys, but this is actually preferred by a lot of producers I know because the keys come back up quicker to allow for a faster playing of the sounds.
The Oxygen keyboard also features some nice trigger pads, which is never a bad thing. Even if you don’t plan on using them right away, it can be something you’d incorporate into your workflow down the road. There are 8 of them that you can assign sounds to via your software, typically used by many for drums, but I’ve experimented with other samples I’ve collected before. They are nice not only for recording a more ‘natural sounding’ drum beat but also to play around with and jam!
Other features and functions
Although they are a bit extra, it can never hurt to have some faders or buttons to use, even if it’s later down the road once you’ve gotten the hang of your controller. I remember when I first bought my first beginner MIDI keyboard I was a bit daunted by all of the extra features and pretty much only used the pads and keys for a good year or two. Now I use everything (especially for live performances), but for $150 the Oxygen is great for providing these as a ‘just in case’. The 8 knobs included can be assigned for mixing, particularly certain effects for manipulation. You could assign a reverb effect to one knob and turn it up and down as you please for a particular track, etc. The 9 assignable faders are the same concept as the knobs, except you have the typical vertical up/down approach towards an assigned effect. These aren’t necessarily essential, but are merely pluses.
Lastly, the ‘transport controls’ the Oxygen offers helps make the assigning task between your keyboard and software a bit less of a headache. You can technically not even touch your mouse with the Oxygen — you just have to read some of the manual to learn how to do so. Otherwise, you’re still able to traditionally assign sounds to your keyboard through your software.
Software bundle included
What makes this MIDI keyboard for beginners also perfect for those of us starting out is their nice little software bundle. If you haven’t chosen a software to start learning to make your music yet, it comes with Ableton Live Lite (one of the most popular digital audio workstations out there!). We absolutely love this software and think it is great for not only beginners but for all levels of music creation and live performing — which makes it perfect for beginners because once you learn it, you’re set for a very long time as you progress your music making adventures.
Aside from Ableton Live, you’re also getting a nice little virtual instrument which provides sounds for the keyboard to play. You can download some free sounds around the internet, but for starting, their inclusion of SONiVOX Twist gives you some nice synth sounds to play with out of the box. We love the software bundle of the Oyxgen — just enough without sacrificing too much of the price of the controller.
The final word on our pick
All in all, the M-Audio Oxygen 49 MIDI keyboard is a perfect fit for beginners. We chose the 49-key count because it is the most popular. Feel free to check out the other versions if you want to save some money or think 49 may be too overboard. The Oxygen 25 keyboard and Oxygen 61 controller are also great options if you want a different key count.
Here’s a cool video demo of the Oxygen for some visual perspective.
Other options for beginner keyboard controllers
Although we were quite careful in our pick for the best beginner MIDI keyboard, we have some near-winners below which fall in different price ranges for you to take into consideration. Don’t forget to review our list we’ve included earlier in the article — pick what’s best for you, depending on your needs and budget.
Akai Professional LPK25
This is another great pick as the best starter MIDI keyboard at under $100. If you don’t necessarily need drum pads (although we still recommend getting them just in case and more as a ‘why not?’ type of question) on the controller, or really anything else aside from a few keys, this is one to look at as it doesn’t have many additional features and gives you just the essentials. Just keep in mind that it’s only 25 keys and they are mini (smaller than normal sized keyboards). The keys are also velocity-sensitive to give the playing a more natural sound. It’s plug-and-play via USB which makes it extremely easy to sync up with your computer, regardless if you’re using PC or Mac. Has an octave up and down button to change the pitches of your sounds as well. A great, affordable MIDI keyboard.
Acorn Instruments Masterkey 49
A little lesser known among the top brands, this beginners MIDI keyboard is a gem and very affordable at that. Offering only keys (albeit a rather nice key-bed for the price), you get the essentials for under $100. The keys are velocity sensitive as well, plug-and-play via USB, and it also includes a nice little touch with pitch and modulation wheels (assignable to warp sounds). Nothing much else with this one, but you’re getting a solid keyboard that’s very easy to set up and use without any drivers needed to install.
Akai MPK Mini MkII
This is a step up from the LPK and is only around $30 more. What’s better about this keyboard is the inclusion of drum pads, a thumb-stick and a few encoders in case you need these functions (or you may end up learning how to use them down the road, so keep in mind!). The MPK’s are some of our favorite MIDI Keyboard controllers; however, this one is a bit more advanced. If you plan on becoming accustomed to some of the more additional features and think you may need it, we recommend grabbing this as a long-term investment. You first have the 25-keys (they are mini) and are synth-action as well, but it also comes with a thumb stick which allows you to do some pitch and modulation controls. It also has very nice quality drum pads, and “Q-Link” knobs which are also alternatives to tweaking plug-ins and effects from your software. Not to mention the pretty hefty software it comes with. You can read our full review of the Akai MPK Mini MkII for more info, but to us if you have the cash, this is another one of the best MIDI keyboard controllers out there right now.
Korg microKEY 37-Key
A different key count here at 37 — we like it because it’s in the middle of the popular 25 and 49 counts. The microKEY is great for beginners, offering mini keys with velocity sensitivity, is rather lightweight and USB-powered, has an octave up and down function as well as a ‘key transpose’ (puts the note into another key automatically), and lastly pitch bend and modulation wheels to boot. A nice alternative for around a hundred bucks retail to take a look at, and Korg is no stranger to music gear, in particular the build that will last you quite a few years until you want to upgrade or perhaps a larger key count to your home studio.
M-Audio Keystation 49
A bit nicer in terms of key build here. The Keystation is the last pick we’ll mention as the best beginners MIDI keyboard, and it has semi-weighted keys as opposed to mini keys previously stated in the list, so if you want a nicer simple keyboard without pads or a lot of extra functions we recommend going with this. You’ve also got the pitch bend and modulation wheels for dynamic play, ‘transport controls’ as seen in our original pick, as well as a sustain pedal input (a foot pedal you can plug into the keyboard for some extra dynamic, more natural sounding keys). It also comes with a nice virtual instrument called Eighty-Eight by SONiVOX, which has some nice piano sounds.
More gear reviews and guides in the realm..
This MIDI tutorial will help you to understand how you can use the MIDI language to control any device that uses the MIDI protocol.
MIDI Tutorial Part 1 - MIDI Messages
The MIDI language is used to transmit real time information for the playback of a piece of music.
'Real time' means that each message is sent exactly at the moment it must be interpreted by the target synthesizer (which can be a hardware synthesizer or software synthesizer).
Various messages are defined to transmit the information needed to perform the playback of music.
The important point is that the MIDI language does not define the sound itself, but only the sequence of instructions to create the sound in the target synthesizer.
The MIDI messages are sent as a time sequence of one or more bytes (8 bits). The first byte is a STATUS byte, often followed by DATA bytes with additional parameters. A STATUS byte has bit 7 set to 1 and a DATA byte has bit 7 set to 0.
The STATUS byte determines the type of the message. The number of DATA bytes that follow depend on the type of the message.
Except for some system MIDI messages, the STATUS byte contains the MIDI channel number. There are 16 possible MIDI channels, numbered from 0 to 15 in hexadecimal. In practice, musicians and software refer to the MIDI channels by counting them from 1 to 16, so that there is a difference of 1 when you program them in hexadecimal (channel '1' is coded '0', channel '10' is coded '9' and channel 16 is coded 'F').
In the same MIDI cable, up to 16 MIDI channels may be used to control up to 16 different instruments playing independently.
MIDI RUNNING STATUSWhile reading bytes coming from a MIDI message, you must know that the STATUS byte can in fact be omitted (except in the first message of that type). In such a case, you can receive a message that only has DATA bytes. The STATUS byte is then supposed to be the same as the last STATUS byte received. This is called MIDI RUNNING STATUS. It is useful for instance to optimize transmission when a long series of the same messages are sent. An example would be a pitch bend or crescendo volume curve. You can also use this MIDI RUNNING STATUS when you generate MIDI messages, but you should care about how the target synthesizer or software will receive it, to be sure it is well interpreted. |
MIDI Tutorial Part 2 - NOTE Messages
The main messages are the NOTE ON and NOTE OFF messages.
The NOTE ON message is sent when the performer hits a key of the music keyboard. It contains parameters to specify the pitch of the note as well as the velocity (intensity of the note when it is hit).
When a synthesizer receives this message, it starts playing that note with the correct pitch and force level.
When the NOTE OFF message is received, the corresponding note is switched off by the synthesizer.
Every NOTE ON message requires its corresponding NOTE OFF message, otherwise the note will play forever. The only exception is for percussion instruments, where it can happen that only the NOTE ON is sent, as the percussion note stops by itself automatically. But it is better practice to send the NOTE OFF in every case, because you are not sure how it could be interpreted by the synthesize receiving it. |
The NOTE ON message is structured as follows:
- Status byte : 1001 CCCC
- Data byte 1 : 0PPP PPPP
- Data byte 2 : 0VVV VVVV
where:
'CCCC' is the MIDI channel (from 0 to 15) 'PPP PPPP' is the pitch value (from 0 to 127) 'VVV VVVV' is the velocity value (from 0 to 127) |
The pitch value determines the frequency of the note to be played. It goes from 0 to 127, with the middle C note being represented by the value of 60:
The value is represented in half steps, so that C# will be 61, D will be 62,..
To transpose a note one octave higher, add 12 to its pitch value. By using MIDI, transposition is very simple as it is done simply by adding or subtracting a fixed value.
Be cautious however about the range of MIDI notes that goes from 0 to 127. By adding for instance 4 octaves (+48) to a note of value 96, the total is 144, which is outside the range and may be truncated to 16 (144 - 128) so that a very low note will result.
The velocity value normally goes from 1 to 127, covering the range from a practically inaudible note up to the maximum note level. It basically corresponds to the scale of nuances found in music notation, as follows (it is more indicative than exact values):
In basic synthesizers, the velocity value is used only to determine the force with which the note is played, the only effect being a note that is louder or softer in volume.
In more sophisticated synthesizer, this value will also affect the sound quality. Indeed, on a real piano, hitting a note harder will not only affect its loudness but also the quality of the sound itself, the timber. This is practically the case with any real instrument.
There is a special case if the velocity is set to zero. The NOTE ON message then has the same meaning as a NOTE OFF message, switching the note off.
The NOTE OFF message is structured as follows:
- Status byte : 1000 CCCC
- Data byte 1 : 0PPP PPPP
- Data byte 2 : 0VVV VVVV
where CCCC and PPPPPPP have the same meaning as above. Hellgate revival mod install. The VVVVVVV is the release velocity, which is very rarely used. By default, set it to zero.
MIDI Tutorial Part 3 - Playing notes and chords
When you send a NOTE ON message to a synthesizer, this note starts playing. Meanwhile, you can send other NOTE ON messages, with different note pitches, so as to hear a chord. However, you need to keep track of the notes that are playing, so that you can send a corresponding NOTE OFF for each note, otherwise there will be stuck notes playing forever.
Let's take an example. What are the MIDI messages needed to play the following measure?
As the time dimension must be present to hear the music, here is the time sequence of the MIDI messages that you need to send to a synthesizer to have it play the above music on channel 1 (remember, coded as 0), with a velocity of 64 (mezzo forte), in hexadecimal (0x means hexadecimal notation):
- t=0 : 0x90 - 0x40 - 0x40 (Start of E3 note, pitch = 64)
- t=0 : 0x90 - 0x43 - 0x40 (Start of G3 note, pitch= 67)
- t=1 : 0x80 - 0x43 - 0x00 (End of G3 note, pitch=67)
- t=1 : 0x90 - 0x45 - 0x40 (Start of A3 note, pitch=69)
- t=2 : 0x80 - 0x45 - 0x00 (End of A3 note, pitch=69)
- t=2 : 0x80 - 0x40 - 0x00 (End of E3 note, pitch=64)
- t=2 : 0x90 - 0x3C - 0x40 (Start of C3 note, pitch = 60)
- t=2 : 0x90 - 0x47 - 0x40 (Start of B3 note, pitch= 71)
- t=3 : 0x80 - 0x47 - 0x00 (End of B3 note, pitch= 71)
- t=3 : 0x90 - 0x48 - 0x40 (Start of C4 note, pitch= 72)
- t=4 : 0x80 - 0x48 - 0x00 (End of C4 note, pitch= 72)
- t=4 : 0x80 - 0x3C - 0x40 (End of C3 note, pitch = 60)
't' represents the time in seconds. The score plays at 60 beats per minute, so each quarter note is 1 second.
MIDI Tutorial Part 4 - Selecting Instruments
Up to now, there is no information to tell the synthesizer what sound must be used to play the notes. The synthesizer would probably use the piano or its default instrument.
There is a MIDI message to specify an instrument from a predefined list of 128 sounds. In theory, each synthesizer may have its own custom list of instruments, but the 'General Midi (GM)' standard defines a list of 128 instruments that simplifies compatibility. Most synthesizer have at least a compatibility mode with the GM standard. You can find the list of General MIDI instruments here :
The MIDI message used to specify the instrument is called a 'program change' message. It has one STATUS byte and one DATA byte :
- Status byte : 1100 CCCC
- Data byte 1 : 0XXX XXXX
where CCCC is the MIDI channel (0 to 15) and XXXXXXX is the instrument number from 0 to 127. Similarly to MIDI channels, you will often see that the instrument numbers in synthesizers and in GM lists, are numbered from 1 to 128 so you also need to add or subtract 1 for the conversion.
For instance, the trumpet instrument has number 57 in the GM list, so in the above MIDI message you must set XXXXXXX = 56 to get the correct instrument in the target synthesizer.
The notes sent to the synthesizer after that message will be played with a trumpet sound.
Sound Quality of InstrumentsYou will notice that the sound quality as produced by the target synthesizer has nothing to do with MIDI messages. After receiving a program change specifying the trumpet instrument, a cheap, low quality sound card synthesizer may play a pretty bad trumpet sound, while a high quality sampler may render a beautiful and realistic trumpet sound. This is the main problem with MIDI sequences, is that you have no control of the final quality of reproduction, as you do not know what is the synthesizer that will play it when you publish a MIDI sequence. |
MIDI Tutorial Part 5 - Drum instruments
Drum instruments form a special case, as they do not have a specific pitch like on a piano or trumpet. A specific MIDI channel is used to transmit the playback of drum instruments. In General Midi, it is channel 10, but you will find synthesizers that can be programmed to receive drums on any channel.
In the case of a channel assigned to drum instruments (and also for special sound effects often included in synthesizers), the NOTE ON and NOTE OFF message information for the pitch is in fact used to select which drum or sound effect will play.
For General MIDI, you can find the standard list of drum instruments here (at the end of that page):
For instance, to play a bass drum instrument on channel 10, send the NOTE ON message as follows:
- 0x99 0x23 0x40
0x99 is the STATUS byte for the NOTE ON message, using channel 10 (coded 9). 0x23 is decimal 35 which is the note number used for the acoustic bass drum in the GM list above. 0x40 is decimal 64 for a velocity around the mezzo forte nuance. You should then send the NOTE OFF message as follows:
- 0x89 0x23 0x00
MIDI Tutorial Part 6 - Using MIDI Channels
The MIDI protocol handles up to 16 different MIDI channels. Each channel has its own status, for instance the current instrument defined, the notes that are currently playing, as well as other values like the volume, the panoramic,..
By using different MIDI channels, you can define a specific instrument for each. By sending notes on the corresponding MIDI channels, these notes will sound with the given instruments.
Here is a score example with three instruments.
The sax, piano and bass drum will use respectively channels 1, 2 and 10. The MIDI message sequence is the following.
First send the program changes to specify the instruments to use on each channel:
- t=0 : 0xC0 - 0x41 (Alto Sax = 66 > coded 65 = 0x41)
- t=0 : 0xC1 - 0x00(Piano = 1 > coded 0)
- t=0 : 0xC9 - 0x00(Standard Drums Kit = 1 > coded 0)
For drums on General MIDI it is the program change 1 (coded 0) which is the standard drums kit. Some synthesizers also propose Jazz kits, Orchestral kits, Electronic kits,.. with different drum sounds).
Then we can send the notes as already explained. Notice that here, we have used the NOTE ON message with a velocity of zero, as the equivalent of the NOTE OFF message. This is often used in practice.
- t=0 : 0x90 - 0x48 - 0x40 (Start sax C4, pitch = 72 = 0x48)
- t=0 : 0x91 - 0x3C - 0x40 (Start piano C3, pitch = 60 = 0x3C)
- t=0 : 0x91 - 0x43 - 0x40 (Start piano G3, pitch = 67 = 0x43)
- t=0 : 0x91 - 0x4C - 0x40 (Start piano E4, pitch = 76 = 0x4C)
- t=0 : 0x99 - 0x23 - 0x40 (Start Bass Drum = 35 = 0x23)
- t=1 : 0x90 - 0x48 - 0x00 (Stop sax C4, pitch = 72 = 0x48)
- t=1 : 0x99 - 0x23 - 0x00 (Stop Bass Drum = 35 = 0x23)
- t=1 : 0x90 - 0x4A - 0x40 (Start sax D4, pitch = 74 = 0x4A)
- t=2 : 0x90 - 0x4A - 0x00 (Stop sax D4, pitch = 74 = 0x4A)
- t=2 : 0x90 - 0x4C - 0x40 (Start sax E4, pitch = 76 = 0x4C)
- t=2 : 0x99 - 0x23 - 0x40 (Start Bass Drum = 35 = 0x23)
- t=3 : 0x90 - 0x4C - 0x00 (Stop sax E4, pitch = 76 = 0x4C)
- t=3 : 0x99 - 0x23 - 0x00 (Stop Bass Drum = 35 = 0x23)
- t=3 : 0x90 - 0x4F - 0x40 (Start sax G4, pitch = 79 = 0x4F)
- t=4 : 0x90 - 0x4F - 0x00 (Stop sax G4, pitch = 79 = 0x4F)
- t=4 : 0x91 - 0x3C - 0x00 (Stop piano C3, pitch = 60 = 0x3C)
- t=4 : 0x91 - 0x43 - 0x00 (Stop piano G3, pitch = 67 = 0x43)
- t=4 : 0x91 - 0x4C - 0x00 (Stop piano E4, pitch = 76 = 0x4C)
MIDI Tutorial Part 7 - MIDI Controllers
There are 128 MIDI controllers defined, but only a few of them are used in practice. The purpose of a MIDI controller is to set a value of a parameter in the synthesizer playing the notes, like the volume, the panoramic (position in space from left to right in stereo), the level of reverberation,..
The message is constructed as follows:
- Status byte : 1011 CCCC
- Data byte 1 : 0NNN NNNN
- Data byte 2 : 0VVV VVVV
where CCCC is the MIDI channel, NNNNNNN is the controller number (from 0 to 127) and VVVVVVV is the value assigned to the controller (also from 0 to 127).
The most common controller numbers are the following:
- 0 = Sound bank selection (MSB)
- 1 = Modulation wheel, often assigned to a vibrato or tremolo effect.
- 7 = Volume level of the instrument
- 10 = Panoramic (0 = left; 64 = center; 127 = right)
- 11 = Expression (sometimes used also for volume control or similar, depending on the synthesizer)
- 32 = Sound bank selection (LSB)
- 64 = Sustain pedal (0 = no pedal; >= 64 => pedal ON)
- 121 = All controllers off (this message clears all the controller values for this channel, back to their default values)
- 123 = All notes off (this message stops all the notes that are currently playing)
Volume and velocity
For instance, if you want to set the volume to a value of 100 (in the 0 to 127 range of values, 100 = 0x64) for the instrument playing on channel 1 (coded 0), you can send the following message:
- 0xB0 - 0x07 - 0x64
The volume change has an impact on all notes currently playing as well as the notes that will start playing later. The synthesizer keeps that volume level until another volume level is sent.
Remember that the velocity of a note is sent with the NOTE ON message itself. The velocity cannot be changed once the note has been started, so you can use the volume controller to change the level of the note after it has been started.
To create a crescendo, you need to send a sequence of increasing volume values.
You must always balance out the velocity and volume values to use, so that both are in a correct range of value. If one of them is too low, the notes may not be heard correctly even if the other value is at its maximal value. The effect of both values are multiplicative to determine the real loudness of the note.
Instrument selection
As we have seen before, you can select a sound on a synthesizer with the 128 values of the program change message. The sound bank selection messages (LSB Least Significant Byte and MSB Most Significant Byte) are used in addition to the program change message.
A synthesizer may contain one or more sound banks, each containing 128 sounds. If you want to use a specific sound bank of the synthesizer, you must first activate the new bank and then send the program change message.
As an example, if you want to use sound number 3 (encoded 2) on channel 1 (coded 0) in the bank with specification LSB=1; MSB=5, you must send the following sequence of MIDI messages:
- 0xB0 - 0x00 - 0x05 (MSB sound bank selection)
- 0xB0 - 0x20 - 0x01 (LSB sound bank selection)
- 0xC0 - 0x02 (sound selection in the current sound bank)
After receiving these messages, the synthesizer will play the following notes with that specific sound.
As the MSB and LSB can range from 0 to 127, there is a total of 128 x 128 = 16384 possible sound bank to be selected. In practice, only a few are implemented.
The information about the program change numbers and the sound banks available is to be found in the MIDI implementation chart and MIDI specifications of the synthesizer you are using.
MIDI Tutorial Part 8 - Pitch Bend
The Pitch Bend message is used to vary the pitch of the notes that are playing on the current MIDI channel. The message is the following:
- Status byte : 1110 CCCC
- Data byte 1 : 0LLL LLLL
- Data byte 2 : 0MMM MMMM
where CCCC is the MIDI channel, LLLLLLL is the LSB of the pitch bend value and MMMMMMM is the MSB. The 14 bit value of the pitch bend is defined so that a value of 0x2000 is the center corresponding to the normal pitch of the note (no pitch change). Using numbers above 0x2000 (up to 0x3FFF) will increase the pitch and using numbers below (down to 0x0000) will decrease the pitch. The range of pitch change is symmetric (up and down) and can often be adjusted in the synthesizer itself. The most common range value is +/- 2 semitones around the standard note pitch.
Pitch bend is often used to create glissando and guitar bend effects. To achieve this, you must send a continuous sequence of pitch bend messages, to vary the pitch in real time, often enough so that the ear does not hear too much steps in the curve.
For instance, to 'bend' a note of a semitone higher, you must send a value of 0x3000, which will be sent as:
- 0xE0 - 0x00 - 0x60
Indeed, the value 0x3000 must be split into two 7-bit values, giving 0x60 and 0x00 for the MSB and LSB parts.
MIDI Tutorial Part 9 - Resetting notes
As we have seen, all NOTE ON message should have its corresponding NOTE OFF message, otherwise the note will continue to sound forever.
There are cases where you want to reset whatever notes are playing. There are basically 4 ways to do this. Some synthesizer do not accept them all, so it is interesting to offer the different possibilities.
1 - Using MIDI controller 123
If you send a MIDI controller 123 on one MIDI channel, the synthesizer will stop all notes playing on that channel. To reset all MIDI channels, send that message for each channel. Please note that some synthesizer do not respond to this message.
2 -MIDI Reset message
This is a one status byte message 0xFF, without data bytes. It should reset the synthesizer to its power-on default, so it also stops all notes playing. Use this message sparingly, as it reset the full synthesizer, not only the notes playing.
3 - MIDI NOTE OFF
You can also send, for each channel (0 to 15) and each note pitch (0 to 127) one MIDI NOTE OFF message. This is the total solution, but requires a lot of MIDI messages to be sent, which may have some reaction time according to the MIDI hardware system you use.
4 - MIDI NOTE OFF - Optimized
In this case, use a table to keep track of the NOTE ON and OFF messages you send for each channel. A buffer of 128 bytes for each channel, representing the number of NOTE ON messages sent to that note,should be incremented by a NOTE ON and decremented by a NOTE OFF. Then, when you want to reset every note, simply go through that table and send a NOTE OFF to each note that is still playing.
MIDI Tutorial - Going further..
The above information covers the basic use of MIDI for many playback situations. To find all information about the more advanced MIDI messages and conventions, you can go on the site of the MIDI Manufacturers Association, that you can easily find with Google.
If you have any question, feel free to contact me at :
info@arpegemusic.com

Musically yours,
Dominique Vandenneucker
Music Software Designer
since 1992 at Arpege Music