In order to communicate through MIDI, a device should be able to send and receive MIDI information, though many common devices are created to do primarily one or the other.
• A sound card must be given instructions that are generated by some other source; it cannot create any MIDI messages on its own.
• Electronic instruments known as tone or sound modules, are also only able to respond to messages generated from the "outside."
• Keyboard controllers are intended for transmitting MIDI data only, and have no way to make sound.
Whatever their capabilities, all MIDI devices must contain a processor, that deciphers and acts upon MIDI messages, as well as physical connections called Ports, for sending and receiving data.
One of MIDI's capabilities is its ability to transmit messages to different electronic musical instruments at the same time.
Each instrument can distinguish which messages are for it as the messages contain channel information, which acts as an address for the message.
The MIDI channels are not physically separated, i.e., they are not transmitted on separate strands of wire.
Rather, the different channel numbers (1-16) are contained in the beginning of the MIDI message, and determine whether an instrument or device will respond to that message.
In this way, messages can be directed to certain devices, while other devices, which might also be receiving the information, will ignore them.
Because of this, the user has extensive control over how different instruments react to the information that they receive.
There are certain classes of messages called system messages that don't use a channel, since they are intended for all devices connected to the MIDI chain.
Messages that deal with tuning or timing information are in this category.
MIDI messages are the language of MIDI; they are the words MIDI uses in a transmission to communicate the information that must pass from a source to a destination.
There are many types of MIDI messages, though they all fall into two main categories: channel messages and system messages.
Channel messages are those that carry specific channel information, such as those described above.
These include messages such as what note an instrument should play (called a Note Message), and Program Change messages, which tell the instrument what sound it should make while playing the note.
System messages are either intended for all the instruments currently connected to the transmitting device, or are meant to convey information to a specific instrument that is general in nature and doesn't represent specific details of a performance.
Most messages consist of at least two bytes.
The first byte is called the status byte, which tells the receiving device what type of message it is.
Basically, it identifies the message and prepares the device for a response.
MIDI uses the numbers between 128 and 255 for this part of the message.
The status byte can be omitted, if the message status is the same as the previous message status. This is known as "Running Status".
What follows is the actual data the device needs; these bytes are called data bytes.
They represent the details of the message; the values the instrument will use to perform its task.
MIDI uses the numbers 0 to 127 for data bytes.
Some messages use only one data byte; others need two, while some need none at all.
More about MIDI - Message List.