These pages will discuss basic MIDI messages, devices, and connections. It is intended to give enough information to get you started. Much of the information is presented in a generic way, not necessarily directly related to Harrison Mixbus. For specific MIDI for Mixbus click here.
What Is MIDI?
Musical Instrument Digital Interface, or MIDI, is a communication protocol that was published in 1983. The intent was to allow 2 instruments, from 2 different manufactures, to communicate with each other. One keyboard could be played while a second connected keyboard (with tone module) could sound the same note at the same time, doubling the performance.
It is important to know that the information being transmitted is not audio! It is “performance data” in the form of MIDI messages such as the note played, timing, velocity, etc.
Basic MIDI Devices
- A MIDI Controller produces and transmits MIDI messages. Controllers can take on the functionality of keyboards or guitars, etc. They are designed to capture the performance of a musician. They do not produce sounds of their own.
- A MIDI Instrument, or tone module, receives MIDI data and produces an audio output. It may be software or hardware based. A user can have one controller connected to one or more tone modules. Additionally, in the world of Digital Audio Workstations there are “plug-in” versions called virtual instruments (VI).
- A unit that combines a controller and instrument in one package will be referred to as a hybrid for the purposes of this document. The most common form of this is often referred to as keyboard synthesizer. It can generate MIDI performance data and audio via an internal tone module. Sometimes the internal tone module can be switched off with a command known as Local Control. (If you seek out something called a “MIDI hybrid device” you may come up short).
- A MIDI Sequencer is a device or software application that can record, edit, and play back MIDI events.
A single device can implement any combination of controller, instrument, and/or sequencer features. For example, before computer sequencers were popular, it was very common to buy a keyboard that provided the keyboard, internal tone module, and sequencing features in one device. These are sometimes called “arranger” keyboards.
You may find tone module, tone generator, and sound engine are used interchangeably.
The MIDI language is transmitted digitally. The information carried in the messages are note on, pitch, velocity, program change, note off, and more. There are 2 types of MIDI messages; Channel messages and System messages. These two sub groups can be further broken down and will be explained below. These MIDI messages are sent to other devices via a MIDI cable. More on the MIDI cable a little later.
Channels Messages: Each channel message contains a channel assignment and as a result are assigned to specific channels rather than sent globally. With the capability to transmit (Tx) and/or receive (Rx) on 16 channels, the user is offered some flexibility. Once a channel is establish the channel messages will deliver instructions such as Program change, Note on, Note off, and more. With this you can send performance data from one controller, on one specific channel, so that that one or more specific MIDI instruments on the same Rx channel responds.
Voice and Mode Messages
The “Voice” portion of the channel message is the musical performance part and contains information regarding the following:
- Note On: Identifies the note that will produce sound. The data sent is channel number, specific note number, and key on velocity.
- Note Off: Identifies the note that will stop producing sound. The data sent is channel number, specific note number, and key off velocity (notice that the note command has a discrete code for off and on. More on this later).
- Polyphonic Key Pressure (Aftertouch): Some controllers have the ability to sense how much pressure was applied. The data sent is channel number, specific note number, and key pressure. If your controller does not have aftertouch, a default of medium pressure (64 of 128 possible) is assigned.
- Control Change: Specifies what function of the synthesizer is to be controlled. The data sent is channel number, controller number, and controller value.
- Program Change (sometimes called Program Select): Selects the type of sound that should be played. The data sent is channel number and program number. In the early days of MIDI, when a user wanted a custom sound he would need to patch cables. Today this cable patching process can be replaced with a stored file in memory, hence the name “patch”. You may also hear the terms voice or preset. These are essentially all the same thing. You can create your own patches or the manufacture can provide them for you. Because of the format of the MIDI message, only 128 patches would be recallable if it wasn’t for the Bank Message. Having multiple banks of patches, provides many more to choose from.
- Pitch Bend: Modifies, in a continuous manner, the pitch of the note being played. The data sent is channel number and pitch bend value.
The “Modes” portion of the channel message tells the MIDI instrument how to respond when it receives the performance part or the message.
|Mode||Full Name||Common Name|
|1||Omni – On/Poly||Omni|
|2||Omni – On/Mono||no common name|
|3||Omni – Off/Poly||Poly|
|4||Omni – Off/Mono||Mono|
Omni On/Off is used to determine the utilization of available channels. If Omni is ON then it will Tx or Rx data on all channels. If Omni is OFF then it will Tx or Rx on just one channel.
Mono/Poly tells the instrument whether to play 1 note at a time (Mono) or more than 1 note at a time (Poly). The Mono modes are the least commonly used modes (mode 2 and 4).
Polyphonic capability is merely the ability to play 2 or more notes simultaneously. So if you want to play a 4 note chord you will need 4 note Polyphonic capability.
With Multitimbral we are talking about many tones to produce a complex sound like a piano part, a violin part, or a drum part. These are sometimes called “programs”,“patches”, or “presets”. You can have many parts playing at once, each assigned to its own channel. Before Multitimbral there was Monotimbral, where only one part could be played. Multitimbral can replace multiple notes with multiple programs so that we may produce the sound of an entire band with one MIDI performance track.
16 part Multitimbral playback capability is not uncommon today. Also be aware some manufactures may call Multi mode something different. For example, the classic Yamaha Motif refers to it as “song mode”.
There are other commands that can be invoked with a mode message, such as reset all controllers, local control, and all notes off.
Let’s address the “All Notes Off” message. As mentioned previously, the note on/off commands are discrete messages. So what happens if a note is turned on and for some reason the Rx equipment never gets the message to turn the note off? The “All Notes Off” message addresses this. It sends a Note Off command across all channels. In Mixbus there is a “MIDI Panic button” on the left side of transport section that sends the “All Notes Off” message. The button looks like an exclamation point. How appropriate!
above: the MIDI panic button circled in red
System Messages: These messages are mostly global and as such do not carry a channel assignment.
System Common Messages are for all MIDI devices in a network regardless of channel assignment. These messages are things such as MIDI Time Code (MTC), MIDI Clock, Song Select, and Song Position Pointer.
System Real-time Messages are used for synchronization with all devices in the network that are clock based such as sequencers and drum machines. These devices follow a tempo and need to be in sync. The resolution of the timing is expressed as Pulses Per Quarter Note (PPQN).
System Exclusive Messages are not global. They operate more as a point to point type of operation. It’s kind of a catch all command that allows manufactures to use it for a whole host of things. For example a stored patch can be transmitted to and from equipment by the same manufacture. The manufacture can register their equipment with The MIDI Manufacturers Association so that they can obtain an exclusive SysEx ID so that only their equipment will respond to their commands. The code that one manufacturer uses to write a patch is going to be different from another manufacturer so sending a Yamaha patch to a Roland won’t do much good. This is because each manufacturer has their own unique way handling information such as patches.
General MIDI (GM and GM1)
General MIDI is not actually a message but rather a standard that specifies certain functionality of MIDI equipment. Without General MIDI, each manufacturer can assign whatever patch they wanted, to whatever storage location they wanted. This would make it difficult to use different equipment from different manufactures. For example, one manufacturer may have a French Horn for Bank 1 program 4, and another manufacture may have that spot reserved for Viola. But General MIDI says that Bank 1 program 4 shall be a Honky-tonk Piano. With this, when a command is sent from one device to another the musician can hope for a sound closer to their expectation. General MIDI 1 elaborated on this and added even more specifications to the standard.
The MIDI Cable
The MIDI cable is unusual in that both ends have a 5 pin male connector.
- Pin 1: Normally not used (proprietary systems may make use of)
- Pin 2: Terminated to a shield to eliminate noise
- Pin 3: Normally not used (proprietary systems may make use of)
- Pin 4 & 5: A twisted pair, and carries the 5 volt MIDI message
Sometimes this cable is called a MIDI DIN (Deutsches Institut fur Normung). The MIDI cable will carry MIDI signals in one direction only. If you need MIDI messages to return, then you will need a second cable.
The MIDI DIN cable characteristics are:
- Unidirectional transmission
- Serial transmission
- Maximum recommended length is 50 feet (to insure reliability)
- Transmission speed is 31,250 bits per second
USB, FireWire, and Ethernet have become popular alternatives when connecting to computers. However, if you need the full feature set that MIDI has to offer you will need MIDI cables.
Types of MIDI Ports
Often you will find 3 types of connections on MIDI equipment.
- MIDI out: Transmits the MIDI message
- MIDI in: Receives the MIDI message
- MIDI thru: Transmits a copy of the MIDI message found on the MIDI input (This facilitates daisy chaining and star configurations).
Fig. 1 above: A dedicated MIDI controller is connected to a tone module. This requires a MIDI cable. A USB or FireWire cable will not work.
Fig. 2 above: A dedicated MIDI controller is connected to a DAW such as Mixbus via a MIDI interface. Running a Virtual Instrument plug-in within Mixbus replaces the dedicated tone module. The audio output from Mixbus can be routed to an internal DAC / sound card or to an external audio interface.
Fig. 3 above: A dedicated MIDI controller with USB MIDI out. In essence the MIDI interface is built-in to the the controller eliminating the need for an external MIDI interface.
Fig. 4 above: In this example the MIDI controller has an on board tone module. Now MIDI messages can be sent from the computer to the MIDI controller so that audio can be produced with the on board tone module.
Fig. 5 above: This is an example of a daisy chain configuration. A dedicated controller sends MIDI messages to the first tone module which in-turn sends a copy of the signal to the second tone module. If the chain is carried out too far, the signal will degrade and become unreliable.
Fig. 6 above: This is an example of a star configuration. The Thru Box allows this configuration. Connecting many tone modules to a central point causes less chance of signal degradation. The advantages of this configuration increases with the number of devices on the network. For simplicity only 2 tone modules are shown. In practice many more may be connected causing the diagram to resemble a star pattern as the tone modules branch out around a central point.
Fig. 7 above: A merge box allows 2 MIDI controllers to send MIDI messages to a single tone module. An example of this configuration could be that one of the controllers may be a keyboard and the other controller could be a string instrument both playing together into one tone module.
The Interface From MIDI To Mixbus
You will typically need an audio interface with MIDI I/O as in figure 2 or 4 above, or you may opt for a USB or FireWire connection as in figure 3. Of course you will also need need a MIDI controller. Although you can input data straight into Mixbus via the various tools provided in the software, it can be an inefficient method for recording an entire performance. These tools are best suited for making adjustments to an already captured performance or for step entry.
above: some of the tools offered in Mixbus
below: the on screen keyboard (right click the MIDI track rec button)
What MIDI Controller Should You Get?
Only you can decide what is best for you, but if you are new to MIDI a keyboard controller is a great choice for general purpose use and by far the most popular because of its flexibility. You will want to consider the number of octaves you would like the keyboard to cover. An alternative to a MIDI controller would be a synthesizer, one that generates MIDI messages and can also contains its own tone module. But because it can produce its own audio, it may cost more, take up more space, and be heavier. If you like the sounds a MIDI hybrid makes, and if it has line level outputs, you can record the audio straight into Mixbus via an audio interface as shown in figure 4 above.
Recording MIDI into Mixbus
To record a MIDI performance into Mixbus, first add a MIDI track. If you would like to hear your performance thru Mixbus then be sure a Virtual Instrument plug-in is in the redirect box. You can use Plug-in Manager to do this (by default a MIDI track will be created with the “Reasonable Synth” plug-in already in place).Then, in the MIDI Connection Manager, confirm that your MIDI input device is connected to the track you wish to record to. Record arm the track and click the master record button located in the transport section. Once the transport rolls you will be able to record your performance. MIDI messages will now be captured into Mixbus.
For more information click here