For the convenience of MIDIphobes, here are the Top 10 reasons not to learn about MIDI:
10. You think MIDI applies only to guitar synthesizers, which you don't like and can't afford anyway.
9. JS Bach did just fine without MIDI.
8. The learning process reminds you of going to school, homework, and gym teachers.
7. You enjoy getting confused about which footswitch buttons to hit and which pedals to move when you're playing on stage.
6. Just because you paid hundreds of pounds for some cool multi-effects doesn't mean you need to actually use the features you paid for.
5. Your dog ate this issue of Sound on Sound.
4. You like using the same boring guitar sound all the time because it's part of your style.
3. You're afraid that if you learn about MIDI, you'll have to wear a pocket protector.
2. Jimi Hendrix did just fine without MIDI.
And the number 1 reason not to learn about MIDI:
1. Because no one has made it clear to you how useful some aspects of MIDI can be, and how much it can improve your sound.
We can't do much about reasons 2-10, but if reason 1 is the problem, keep reading while I get you up to speed on all the MIDI you need to know -- which isn't really that much -- to achieve total control over your signal processors.
A MIDI system requires something that sends MIDI messages (such as "make the guitar louder," "select this effect," "add more echo," etc.) and something that receives these messages and acts on them, like a signal processor or MIDI-controlled amp.
MIDI stands for Musical Instrument Digital Interface, but don't let that throw you. Just think of MIDI as a catch-all name for the process of sending control messages from one device (like a footswitch) to another device (like a signal processor) over a MIDI cable.
There are lots of different MIDI messages, most of which relate to keyboards, sequencers, drum machines, and all kinds of stuff which we will totally ignore in this article. If you're controlling signal processors, 99% of the time you only need to know about two kinds of MIDI messages: program change and continuous controller messages.
Some people think MIDI involves bits and bytes and techno talk like that. Big mistake. You don't have to know about micro-processors to program a microwave oven, nor do you have to know about superheterodyne circuitry to listen to the radio -- and you don't need to know bits and bytes to use MIDI. These days, MIDI equipment has reached a degree of sophistication that, paradoxically, makes it easier to use than ever.
Take a trip with me down memory lane to the mid-'70s, when disco ruled and guitar effects were starting to progress beyond funny little boxes that ate batteries and burped noise. Guitarists discovered early on that the most useful control on any signal processor was the in/out footswitch, because it allowed you to bring the effect in as needed (distortion is nice, but not all the time). As more boxes were introduced -- compressors, phase shifters, echo units, wah-wahs, etc -- musicians started connecting all these boxes together with patch cords. And that's where the trouble began: if you wanted to bring in multiple effects at the same time, you had to hit a bunch of footswitches at once; fancy tap dancing became the order of the day.
Manufacturers responded with a variety of methods to make life easier on stage (as well as separate us from our disposable income). One of these involved building several signal processors into one box, along with their footswitches. Another, more advanced idea was to build all the signal processor electronics into a box, and run a cable to a remote footswitch assembly with multiple footswitches .
Further along the evolutionary path, sometimes these footswitch assemblies would include a master bypass button that would let you set up a combination of effects, then bring the lot in and out by pressing a single button.
The problem was that these footswitches often controlled actual audio lines, which meant that the cable going from the signal processors to the footswitch assembly carried your delicate little guitar signal, making it susceptible to picking up hum and other interference. Some got around this by building electronic switching into the main effects box and just sending control signals to these electronic switches. But that solution was far from ideal, because each manufacturer had a different idea of how to implement the footswitch control circuitry. Therefore, a Brand A footswitch could only work with Brand A effects, and a Brand Z footswitch could only work with Brand Z effects. If you wanted to trade up to a newer effects box, you almost invariably had to junk the footswitch.
Then came the introduction of cheap computing power. Signal processors could use this power to manage your effects in a much more intelligent way, and MIDI was the ticket.
Rackmount multi-effects devices started to appear -- you could dial up the sounds you wanted, using particular combinations of effects and control settings, and save all these settings as a 'snapshot', called a program. Suppose program 1 was the 'Distortion of Doom' sound, and program 2 the 'Pretentious Rock Ballad' sound. No longer did you have to twist dials and push multiple footswitches to go from one sound to the other -- select program 1 or 2, and the sound would be called up exactly as you had programmed it.
A parallel phenomenon was occurring with synthesizers. You used to have to tweak numerous dials and switches to change sounds on a synthesizer, but manufacturers started to include 'snapshot' capabilities on these too. You could simply punch a button, call up a new program, and have an entirely different sound at your fingertips.
When the MIDI spec was drawn up, provisions were made for 128 MIDI program change messages. This is why a lot of synths and signal processors offer 128 programs (a new MIDI bank select message that addresses banks of 128 programs is now in place, but since so little equipment responds to bank select messages, we can pass on this for now).
Now let's consider a modern MIDI-based footswitch setup.
The signal processor has a MIDI In jack that receives MIDI messages; the footswitch unit has a MIDI Out jack that transmits MIDI messages. Pressing an individual footswitch transmits a MIDI program change, and the signal processor calls up the program associated with this program change number. If pressing the footswitch sends out program change 43, the signal processor immediately selects program 43. It's simple, and what's more, it's standardised -- you can use a Brand A footswitch with a Brand Z signal processor because all manufacturers have agreed to use the same message format. When any footswitch sends out program change 43, it will look the same as far as any signal processor (receiver) is concerned.
However, there are many ways to implement how buttons send out program changes. The least practical (and certainly most stupid) way would be to have 128 buttons, each of which sends out a single program change command. One possible option would be to have eight footswitches, and up/down footswitches that select any of 16 banks. Bank 1 could have the eight footswitches send out program changes 1-8, Bank 2 program changes 9-16, Bank 3 program changes 17-24, and so on.
An even more versatile approach is to let you program each bank's switch to send out whatever program change you want. For example, suppose you use signal processor presets 12, 15, 37, 24, and 6 in a tune. You could program one footswitch bank so that footswitch 1 sends out program change 12, footswitch 2 sends out program change 15, footswitch 3 sends out program change 37, and so on. You can then hit each footswitch in a nice, logical order rather than jumping between banks and hitting different footswitches.
MIDI allows for a great deal of versatility, which means there are often several ways to accomplish the same basic result. This can be confusing at first, but it ultimately allows for considerable power.
One alternative way to set up a correspondence between footswitch messages and signal processor programs is called mapping, which involves setting up a program change table for a signal processor that specifies which program will be called up in response to a particular program change number. For example, you might program a table where program change message 1 calls up signal processor program 16, program change message 2 calls up signal processor program 51, program change message 3 calls up signal processor program 47, and so on.
MIDI's versatility with respect to footswitches may be a little overwhelming at first. Just remember that:
1. The footswitch sends out standardised program change commands over its MIDI Out jack.
2. The signal processor receives these messages at the MIDI In jack and changes programs according to the program change message, or as modified by a program change table that maps particular program change numbers to particular signal processor programs.
3. It's vital to read the footswitch manual to see how footswitches are programmed to send out specific program change commands with specific footswitch presses.
Sometimes you don't necessarily want to change from one program to another, but instead vary a parameter within an individual program (delay feedback, filter frequency, distortion drive, and so on). A wah-wah pedal is a good example of changing a particular parameter (filter frequency) in real time.
One way to change parameters in real time is to grab a knob and move it, but you'll probably want both hands free to play your guitar. You could put that knob in a pedal and work the pedal, but what if you want to vary another knob? Or what if the effects unit doesn't have knobs, but does all its programming via little pushbuttons?
The concept of continuous controllers came about because synthesizers have pedals, knobs, levers, and other physical 'controllers' that alter some aspect of a synth's sound. Guitarists can similarly use controllers (typically footpedals) to alter aspects of a signal processor's sound.
As with program changes, you need something that transmits continuous controller messages and something that receives these messages. On the transmitting end, the continuous controller message quantises the controller into 128 discrete values (0-127). Suppose you have a footpedal that generates continuous controller messages. With the pedal rocked all the way back, it might generate a value of 0. As you push down on the pedal, the values increase until at its mid-point, the pedal puts out a value of 64. Press the pedal down all the way, and it generates a value of 127.
As the receiving end, the parameter being controlled changes in response to the pedal position. If you're controlling delay feedback and it receives a value of 0, feedback is at minimum. When it receives a value of 64, the feedback might be halfway up, and upon receiving a value of 127, the feedback might be up all the way. I say "might be" because some processors let you scale and/or invert the values. With scaling, you can attenuate the values to a certain extent -- for example, have maximum pedal position set the delay feedback to halfway up instead of all the way, thus allowing for more precise control (and making it impossible to get maximum feedback). With inversion, the 'sense' of the pedal is reversed: full down might turn off delay feedback, in which case pulling back on the pedal would increase delay feedback.
MIDI allows for 128 (there's that number again!) continuous controller messages, each of which can produce a value from 0 to 127. So, if your signal processor has 128 different parameters, each can be assigned a unique number -- say, 1 for delay feedback, 2 for distortion drive, 3 for compression level, 4 for EQ frequency, and so on. In this example, if the pedal (or other controller) is set to continuous controller 3, it will vary the compression level. If the pedal is set to continuous controller 4, it will vary the EQ frequency. For synthesizers, some controller numbers have been standardised (for example, controller 7 usually varies the master volume). When it comes to signal processors, though, there is very little standardisation. Some units have fixed assignments; with others, you have to decide which controller numbers you want to assign to which parameters.
There are two main ways in which signal processors assign controller numbers to parameters. In the 'per-program' method, you can assign one or more parameters in a particular program to continuous controller numbers of your choice. This is useful if you have a footpedal that generates a specific continuous controller number -- say, controller 1 -- that is hard to change. Suppose you want to control compressor level in program 1, echo time in program 2, and filter frequency in program 3. Assign the desired parameter in each program to controller 1, and when you call up the program, the footpedal will control the assigned parameter (compressor level in program 1, echo time in program 2, etc).
The second method uses 'global' controller assignments. In this approach, each parameter has a continuous controller assignment which is either fixed or which you assign. For example, if delay time is assigned to controller 24, every patch that uses delay will have its delay time altered via controller 24 messages. Thus you'll need to change the pedal's continous controller number to control different parameters in different patches.
With either method, you can often assign several parameters to the same controller number. A single pedal motion could increase the distortion level, increase the delay time, and boost the bass at the same time.
To recap, the most important points are:
1. With per-program MIDI implementations, assign the parameter to be controlled to a specific continuous controller number. With global MIDI implementations, find out which controller number controls a particular parameter (read the manual for this info, and whether or not you can assign the controller number).
2. Set the device that generates the controller messages (typically a MIDI footpedal) to the appropriate controller number.
3. Move the pedal and control the parameter.
One additional point is that MIDI allows for 16 channels over which data can be sent and/or received. Therefore, the devices transmitting program change and continuous controller messages (pedals, footswitches, and so on) will send this data over a particular channel, so the signal processor must be set to receive data on this channel. Generally, when you turn on a MIDI signal processor it will receive on channel 1 or be set to a special MIDI mode, called Omni mode, which means that it will accept data coming in over any channel. Just make sure both devices are set to the same channel, or the signal processor is set to Omni, and all will be well. Multi-channel applications are a lot more complicated (and rare) so we won't concern ourselves with these for now.
There are some other fine points that need to be addressed, such as the fact that some parameters (delay time, for example) don't respond all that well to continuous controller changes because they 'glitch' and produce rude noises as you sweep through a particular range. But this is a crash course, not an exhaustive study. Do some experimenting and keep reading; eventually, all will be revealed.
Most importantly, though, have fun with this stuff and use it! Once you get past the theory and become familiar with the practice of MIDI control, it becomes second nature and loses both its difficulty and mystery.