MIDI stands for Musical Instrument Digital Interface. It’s a communications protocol for computers and synthesizers that was developed in 1983 through the collaboration of several major electronic instrument manufacturers. By linking different MIDI devices together by MIDI cables, you have great flexibility: a key you strike on one MIDI instrument (the keyboard controller) can produce sound from a second MIDI instrument—or several other MIDI instruments; a note played by a person can be precisely recorded and reproduced by a computer; and a computer can play many MIDI instruments at once in perfect synchronization. This part of the appendix covers some sophisticated aspects of MIDI that may help you to understand Finale better.
A MIDI signal, or event, is transmitted in a burst of two or three bytes (pieces of computer data in numeric form). The first byte of every event is called the status byte, because it identifies by number the kind of event being transmitted—a note being struck, the pedal being released, and so on—and what MIDI channel it’s being sent on. The other bytes are called data bytes, because they tell the computer or MIDI instrument which MIDI device (of the type described by the status byte) is being operated, and by how much its status has changed. For example, when you strike a note, the data bytes produced describe which note you played and how hard you struck the key.
Here are some of the various MIDI events described by the status byte and what kind of information is conveyed by the corresponding data bytes.
MIDI event described by status byte |
Parameters described by data bytes |
Note On (pressing a key) |
MIDI key number and key velocity |
Note Off (releasing a key) |
MIDI key number and release velocity |
Polyphonic Aftertouch (channel pressure) |
MIDI key number and amount of pressure applied |
Controller |
Controller number and its value (see next table) |
Patch Change |
Patch number |
Monophonic Aftertouch (channel pressure) |
Amount of pressure applied after note is struck |
Pitch Bend |
Position of pitch wheel |
System Codes |
Variable |
In a few Finale dialog boxes you’ll see sets of three text boxes containing numbers preceded by a dollar sign. These three boxes contain hexadecimal notation for the three bytes in a MIDI event: from left to right, the status byte and the two data bytes. If you backspace over the dollar sign, however, you can enter normal (decimal notation) numbers instead of hexadecimal notation; Finale will translate your numbers into hexadecimal notation automatically. (Note that most times you see the MIDI data text boxes like this, you’ll also see a Listen button. The Listen button lets you play the MIDI event being requested; Finale translates the key, pedal, or controller you play into hexadecimal notation automatically.)
While the events in the table above are described by MIDI status bytes, there’s another class of status bytes called System status bytes that are independent of any particular MIDI channel. They include MIDI Sync data; Sequencer Start, Stop, and Continue commands; System Exclusive data (unique to each synthesizer); and other synchronization and system-exclusive data.
Often in the Finale manual you’ll encounter the term MIDI controller. Controller data is usually produced by a MIDI device that affects the MIDI notes you’re playing—pedals, pitch and modulation wheels, breath controllers, and so on. There are some useful controllers that are settings more than they are devices: MIDI volume level, tremolo depth, and right/left stereo pan are examples. In the table below, the most common MIDI controllers are listed along with their controller numbers.
Controller number |
Controller |
Controller number |
Controller |
1 |
Modulation Wheel (or Lever) |
64 |
Sustain |
2 |
Breath Controller |
65 |
Portamento |
4 |
Foot Controller |
66 |
Sostenuto |
5 |
Portamento time |
67 |
Soft Pedal |
7 |
Main volume |
91 |
External Effects Depth |
8 |
Balance |
92 |
Tremolo Depth |
10 |
Pan |
93 |
Chorus Depth |
11 |
Expression Controller |
|
|
Armed with these controller numbers, you can use Finale’s Expression or MIDI tools to add this kind of data to the playback of your scores.