The Musical Instrument Digital Interface was developed in the early 1980s as a way of allowing musical instruments from a variety of manufacturers to communicate. The MIDI specification defines the electrical characteristics of the MIDI interface and the communications protocol used.
To the user the physical interface appears as 3 different types of MIDI ports: MIDI In; MIDI Out; and MIDI Thru. These ports can be connected together using MIDI cables, which are in fact cables that use 5-pin DIN connection plugs.
MIDI data enters each item of MIDI equipment through the MIDI In port. For example, when you send MIDI information from your sequencer to your synth or sampler, it enters the synth/sampler using the MIDI In port.
All the MIDI data generated by individual pieces of equipment are sent out through the MIDI Out port. For example, if you play notes on a controller keyboard and the sounds are generated on an external sound module, the note information is sent from the controller keyboard using the controller keyboard MIDI Out port.
These are used to re-transmit all information received at the MIDI In port using the MIDI Thru port connections. Often these ports are used to create a chain of connected devices in a single MIDI data path, called a 'daisy chain'. Some devices, commonly computers, do not have a dedicated MIDI Thru port. Instead they use a software MIDI Thru port that shares the same physical MIDI connection as the MIDI Out port.
The longer the MIDI cable, the more likely that the data sent down that cable will have an error in it. Electrically this is because the longer the cable, the higher the electrical resistance that cable has. This causes the signal to degrade, eventually resulting in errors. As a general guide keep your MIDI cables to the shortest possible length.
If you connect the MIDI Out port of your controller device (keyboard, sequencer etc) to the MIDI In port of another device (probably a sound module) you can play sounds stored on the sound module by pressing a key or playing a MIDI file on your controller device.
If you want to play sounds stored on two separate sound modules you can chain the devices together in a daisy chain. To do this, connect the MIDI Out port of the controller device to the MIDI In port of sound module 1 and connect the MIDI Thru of sound module 1 to the MIDI In port of sound module 2.
This process can be continued for more MIDI devices by connecting MIDI Thru ports to the MIDI In port of the next device in the chain. Be aware that if the chain is larger than 3 devices, there is a chance that MIDI data will be corrupted and delays in communicating the MIDI signal to the device at the end of the chain become audible. This means that the time it takes to tell the module at the end of the MIDI chain to play a note is long enough to make the note sound late in comparison with the notes played on the first device in the MIDI chain. A symptom of this would be that instruments played on a device at the end of a MIDI daisy chain are consistently out of time, namely the notes are always played late!
In order to reduce MIDI delays caused by a long MIDI chain, use of a MIDI distribution unit can be used. This type of unit takes essentially one MIDI input stream of 16 channels and then distributes that data stream to a number of MIDI Out ports.
Similar to a Star network except that this solution provides up to 8 separate MIDI ports to a computer based sequencer. This means that each of the 8 ports has 16 channels and a dedicated MIDI Out port. This allows for 8 separate MIDI data streams which can reduce congestion if parts that occur at the same time are distributed across a number of different MIDI devices. It also has the advantage of giving you access to up to 128 different MIDI channels!
A MIDI loop is created when a MIDI message comes back to the same device for a second time. This commonly caused when the MIDI Thru port of one device in the MIDI chain is connected to the MIDI In port of the controller device. In this circumstance a message, such as a Note On, is sent to the controller keyboard sound engine directly and it is sent round the MIDI loop to appear at the controller keyboard MIDI In port. The result is that the sound will be played twice. On many sounds this will create a flanged, out of phase sound. If you are using a percussive or monophonic sound the double notes will sound obvious.
The solution is simple. Make sure that the controller keyboard is set to Local Off. This stops the sounds being sent directly to the controller keyboard sound engine.
MIDI is a serial communications format. This means that MIDI messages are sent one at a time across the MIDI interface. This can however cause problems. If you are running a sequence there are likely to be several events scheduled to occur at the same moment in time, for example the first beat in a bar. Because it takes time to transmit ech and every MIDI message timing errors can be introduced. Basically it can take so long to transmit all the events that are supposed to occur at any one point in time that by the time the event message gets to the playback device it is already too late! Unfortunately if you have all the events occurring at the same time you have no control over which events are played back late. This can be avoided by ensuring that percussive sounds are played back exactly where you want them. Less noticable sounds, in terms of timing, can then be moved forward or backward a couple of ticks. This way you control what is happening.
If you are recording a new instrument part it can be useful to solo that track to reduce any MIDI errors being introduced due to MIDI congestion caused by the playback of existing tracks.
It can be worthwhile learning how many MIDI ticks make up a quarter note on your system. For example, if your system uses a resolution of 96 MIDI Ticks per quarter note you acn easily work out the number of ticks needed for other note timings.
MIDI Based FX
Some sequencers will offer the ability to create a delay effect, this is done by using MIDI notes. This can however be done by any sequencer user simply by copying the prt in question to a new track, and then shifting the part by the number of ticks necessary to achieve the delay time required (see MIDI resolution). Take the copied track and then scale the velocities or adjust the track volume to give you a feed back level (the volume of the echo). The feedback approach used will depend on if the same MIDI channel is being used for both the original and the echoed track. This approach will not work with monophonic patches as it requires a polyphonic syth to work without cutting the previous sound.
Similar to delay except that you require 2 separate MIDI channels. Pan the original track to the left and the echoed track to the right and you have a ping pong delay. You can play with peoples heads even more by changing the panning for each track.
Cross fades can be used to achieve a sound morphing effect. To do this copy a MIDI part to another track using a different patch. Then simply reduce the volume of one track while you increase the volume of the other track and hey presto, the sound morphs!
Discuss this article in our Music Forum.
Songstuff Site Crew
Site Crew conduct draw on their experience and contacts to perform interviews, and write quality articles on a variety of subjects. In addition the Songstuff Community members regularly contribute articles and Songstuff has many regular contributors from across the field of music.
Songstuff Site Crew are highly experienced and cover a broad range of music industry roles including label owners, music educators, professional musicans, songwriters, band managers and other music industry professionals.
This article has been written by one of the Songstuff Site Crew.