MIDI has been with us for 20 years now, and a large part of its
success has come from its malleable nature and the way that it lets you
separate notes and control gestures from the actual production of
No MIDI event is etched in stone; you can always change any detail
of your composition at any time in any of several ways, including
substituting one kind of event or parameter for another. That process,
which is known as remapping, is nothing more than the
reassignment of MIDI data. You can change an event's placement in time,
its pitch, or a specific value, and you can even change one type of
MIDI data into another.
Most sequencers provide several tools for reassigning MIDI messages.
You can often set up controls that accept a MIDI message from one
source, change the message type, and route the message to a new
destination as you play. In Cakewalk Sonar, you use the Studio-Ware
Panel; Emagic Logic furnishes the Environment; Digital Performer offers
Consoles; and Steinberg's Cubase SX has the Input Transformer. These
features are all designed to let you change MIDI data in some way.
Certain programs even have ready-to-go MIDI-mapping plug-ins, such as
arpeggiators, harmonizers, and MIDI delays.
To demonstrate MIDI's creative flexibility, I've assembled a grab
bag of tips that you can apply with a basic MIDI setup and a good
software sequencer. Some of these ideas involve using simple editing
techniques to help you refine your MIDI projects. Other tricks involve
substituting one type of data for another to expand your MIDI palette.
In the right setting, any of these tips can add a little pizzazz to
your next project and encourage some fruitful experimentation.
Drum parts are an obvious target for microediting, and the typical
sequencer offers an array of tools for precisely tailoring just about
any rhythm track. All of the major sequencers also have specialized
groove-quantizing tools that are derived from analysis of live
FIG. 1: The ability to
split a MIDI drum track by pitch allows easy reassigning and editing of
individual drum-kit elements.
I keep a library of drum grooves as Standard MIDI Files or in my
sequencer's native file format. The grooves typically contain all
drum-kit elements in a single track. My first step after loading the
file is to copy the data to a new track, leaving the original as a
muted safety backup. Next, I “explode” the track so that
each percussion instrument occupies its own track. Most sequencers let
you separate your data into individual tracks using note number as the
criterion (see Fig. 1). At the very least, you can cut all notes
of a single pitch and paste them into a new track. Some sequencers can
automatically name your drum-kit instruments as soon as you create the
split. If not, take the time to name each track; you'll thank yourself
later if you need to remap those notes to a different pitch.
Next, see if you can better serve the groove by reassigning kit
elements to different samples or synth patches on the same or a
different MIDI instrument. Do that before altering the timing or
Velocity. Because of differences in a sampler's or synthesizer's
capabilities for processing incoming MIDI data, some devices may
respond sluggishly to Note On messages, while others may differ in
their Velocity response. Those variations shouldn't inhibit your
choices if an instrument sounds right to you; you can always adjust
individual rhythm elements in order to get the proper feel.
Once you've decided on the instrument, play the file back with the
other elements included. You may then want to adjust the MIDI data to
correct any timing problems. If a drum sound lags, simply shift its
timing earlier. It's possible that your new sample may sound rushed if
the new device has a snappier reaction to Note On data than the
original device did. In that case, shifting the new sounds back by a
few sequencer ticks should correct the feel.
SENSITIVITY FOR DRUMMERS
Next, evaluate your new sound's Velocity response. Does it sound
weak or too strong when compared with the rest of your well-balanced
kit? Before adjusting the Velocities, it's wise to investigate any use
of Velocity scaling in your sound source. That should be adjusted
before making other changes.
If you need to adjust Velocity data, most sequencers offer at least
two ways to accomplish that task. You can add or subtract values, or
you can adjust the Velocities up or down by a percentage. Whichever you
choose, bear in mind that extreme increases can level out the relative
differences between events and leave you with little of your original
dynamic range, so use discretion.
Chronic tweakers may find a number of other reasons to fine-tune
rhythms and dynamics. For example, you may want to apply a bit more
swing to the hi-hats or rush the toms slightly during fills. Consider
sifting out the snare hits that have softer Velocities and putting them
on a separate track. You can then remap those events to a softer sample
that better suits ghosted snares. Now that the individual drum elements
occupy discrete tracks, it's easy to apply groove quantizing,
additional time shifting, or even note-by-note editing.
One of my favorite tricks is to add subtle amounts of Pitch Bend to
snares. Drummers rarely strike snares with the same force every time,
and the bend information imparts a bit of variety to the sound. Make
sure the snare is on its own MIDI channel so that the Pitch Bend
doesn't stretch your other drum sounds. I usually place a single, small
Pitch Bend event before the onset of the note and another event with a
value of zero after the sound's release. By the way, riding the Pitch
Bend wheel on a track of high toms can provide a pretty decent
READY TO PLAY
If you find that you spend too much time preparing your synthesizers
for playback from song to song, you should get into the habit of
setting up your songs with embedded MIDI data in your sequencer tracks
(see Fig. 2). It's easy to store Bank Select and Program Change
messages at the beginning of your tracks so that your choice of sounds
is recalled each time you load the sequence. However, there are many
other parameters that you can have ready with a few mouse-clicks.
Reverb levels and other effects settings, instrument panning, and
initial instrument volumes are typical adjustments that you can insert
into a MIDI track.
FIG. 2: The MIDI track
shown in this Event List has a small System Exclusive Dump (in Hex)
followed by a Program Change, Volume, Pan, and Expresssion message,
along with Control Change messages regulating reverb and chorus send
levels on a General MIDI synthesizer.
If a track features a lead instrument with lots of Pitch Bend,
you'll want to insert a Pitch Bend value of zero at the onset of the
song, so that stopping a song during a passage and playing back from
the beginning doesn't leave you with an out-of-tune instrument. The
same procedure holds true for controls such as MIDI Volume, Aftertouch,
and Modulation. You don't want your synths to immediately begin playing
with vibrato, do you?
You can even dump the entire contents of your synthesizer's memory,
including programs and multitimbral setups, into a sequence to give
each song a unique batch of sounds that are ready to go when you press
Play. It's best to reserve separate tracks for setup data. If you need
to move your sequences to another studio, the data may be irrelevant to
the hardware at hand; or if you opt for external signal-processing
gear, you may need to print your tracks dry. In those cases, you can
simply mute or delete your setup data without affecting your sequenced
MIDI guitarists might want to set up a multitimbral arrangement in
which a single synthesizer plays six monophonic parts and matches the
Pitch Bend range of the controller. Individual synthesizer quirks and
inconsistent MIDI implementation can make for slow progress when the
muse strikes. In this day of software synthesizers, some of us still
have hardware dinosaurs that always power up in Omni mode. You can
insert an Omni Off message at the beginning of that device's track so
that it will ignore messages intended for your other synths.
Not all synthesizers respond to controller messages in the same way.
In fact, a single synthesizer often responds differently from one patch
to another. One pad sound might open its filter smoothly when you send
Aftertouch, whereas another might hardly budge, or it might instantly
open its filter all the way. You can edit the patch's programming to
elicit a more accurate response, but it's often much easier to just
change the controller data in your tracks.
Sequencers typically offer several ways to adjust controller data:
adding or subtracting, scaling by percentage, and compressing and
limiting. Adding and subtracting just increases or decreases values by
a specified amount. Percentage scaling often works better than adding
or subtracting because it lets you preserve the relative values of your
controller data. Compressing or limiting the data works best when the
majority of the performance works fine but needs to have extreme values
leveled out, such as when the upper ranges of your Aftertouch messages
affect the filter response too drastically. As with Velocity edits,
it's wise to exercise caution, because extreme values can level out the
subtleties in your performance.
As any MIDI guitarist readily knows, guitar controllers (and
guitarists) can be somewhat overzealous when bending notes. A guitar
controller that has Pitch Bend enabled is constantly sending Pitch Bend
messages; simply repositioning your fingers on the fretboard can send
unnecessary data. Excess Pitch Bend — or any other MIDI
controller messages, for that matter — can eat up precious
bandwidth in the MIDI data stream and can easily create timing
problems. Fortunately, most sequencers offer data-thinning
FIG. 3: Before and after
data thinning: notice that the reduced amount of Pitch Bend retains the
same general contours as the unedited version.
Typically, your sequencer lets you specify a minimum time interval
and a minimum value change to allow between events to determine how
many events get weeded out (see Fig. 3). Be careful not to
overdo the process, however, or you'll end up with bends that sound
staircased and unnatural.
I've always found data thinning for Pitch Bend to be a
trial-and-error process; use your ears, and keep your Undo button
within easy reach. Little bits of Pitch Bend data in unintended places
contribute to the realism of fretted-instrument parts; real fretted
instruments are never perfectly in tune from note to note. However,
that aesthetic may not be as appealing when played back with a synth
pad or keyboard-type sound.
Another prime bandwidth hog is Aftertouch (Channel Pressure).
Keyboard players naturally adjust the pressure on the keybed as they
play. So, if you aren't using Aftertouch as part of your sequencing
scheme, be sure to set up your sequencer to ignore Aftertouch on input.
Another way to thin controller data is to quantize it. If your
sequencer lets you quantize controllers (without affecting note data),
you can effectively remove redundant events, although you should apply
that technique with caution.
FIG. 4: Cakewalk Sonar's
StudioWare Panel can map one MIDI message type to another. Here, it is
receiving Expresssion on MIDI channel 1 and outputting Aftertouch on
MIDI channel 1.
Because of production costs, companies that manufacture MIDI
keyboards and other controllers are often forced to cut corners on the
hardware capabilities or MIDI features that they offer. A prime example
is the inexpensive MIDI keyboard that doesn't send Aftertouch.
Installing a pressure-sensitive mechanism under a synthesizer keybed
adds considerable expense to a product, so Aftertouch response is often
one of the first features to go.
If your keyboard lacks Aftertouch but has an expression-pedal jack
or a Modulation Wheel, however, you need not be left out of the party.
Your sequencer can remap just about any MIDI control message to any
other. In this instance, I prefer to use an expression pedal and let my
sequencer remap Control Change (CC) number 11 to Aftertouch (see
I could use my keyboard's Mod Wheel, changing CC 1 to Aftertouch,
but I find a pedal easier to control than a Mod Wheel. An expression
pedal is a vital tool for the MIDI guitarist because it frees your
hands for playing. If you don't have a pedal handy, you can always
record the Mod Wheel into a track and remap the Modulation data to your
choice of Control Change data afterward.
I own a portable digital studio (PDS) and a computer DAW, and the
combination gives me unbeatable flexibility. I can record tracks when
I'm away from home and digitally transfer tracks to my computer
workstation for further editing and processing. Still, space is a
precious commodity in my studio. Although I'd rather use a MIDI control
surface than a mouse for mixing, the last thing I need is another piece
My Korg D16 occupies the space in which a control surface would
normally be and for a good reason. It is my control surface. In fact,
anyone with a PDS that offers MIDI automation can convert the device to
a control surface for external MIDI gear. Check your PDS
MIDI-implementation chart; it's more than likely that several buttons
output MIDI Machine Control, the faders send CC 7 (Main Volume), and
the track-panning knobs send CC 10 (Pan Position). Furthermore, because
each fader transmits over a different MIDI Channel, incoming MIDI
Volume messages do not interfere with each other, extending your
Moreover, you can map each fader and knob to control multiple
parameters on a single device. You can, for example, control
filter-cutoff parameters or pulse-width modulation on several software
synthesizers. The trick is to find out which message your PDS is
sending. In your sequencer's remapping tools, select that message as an
input and assign the desired CC message as an output. You will probably
also need to set up a target track or device for the transformed
THE KEYS TO CONTROL
Other possibilities for control surfaces may literally be sitting
right in front of you. Your MIDI keyboard may sport a batch of knobs
and sliders; if they transmit MIDI data you can remap each to perform a
different function. Some software will even let you map Note Number or
Velocity to a Control Change.
Even though continuous controllers are presumably designed for
sweeping values, it's quite a cool trick to input, say, a discrete
Aftertouch value to control filter cutoff or perhaps use a specific
Velocity or a Control Change value to change a soft synth's pulse
width. For that matter, consider using Note Number to record MIDI
Volume or Pan Position; it's a powerful way to create scenelike
automation without sending an excessive amount of MIDI data. Most MIDI
sequencers already offer predefined maps that let various keyboard
notes trigger different recording operations.
Controller remapping is useful for more than correcting MIDI
sequences. The ability to change MIDI messages on the fly can give you
serious fun for live performance. With a bit of preparation, you can
bring MIDI tricks, effects, and greater expressiveness to the stage. A
laptop computer with a sequencer can serve as a MIDI processor offering
powerful tools for remapping MIDI messages during a show. You can also
find a great selection of standalone processing programs on the Web
(see the sidebar “Real-Time Rally”).
Live MIDI processing can be useful for the comparatively mundane
tasks of creating keyboard splits, Velocity splits, and crossfades
between separate sound modules. Or it can let a single control gesture
send two different messages. For example, you can set up a processor to
shunt Velocities below 64 to a synth receiving on MIDI channel 1, and
shunt Velocities from 65 up to MIDI channel 2, where another synth (or
second channel on a multitimbral unit) is waiting to respond to those
higher values. There's no reason to stop at a single Velocity split;
you can divide the range of Velocity values into multiple MIDI channels
and trigger more timbres.
Likewise, you can define ranges of Note Number values so that from
C0 to C3, for example, notes map to MIDI Channel 1, while subsequent
ranges are sent to different MIDI channels. If your MIDI-processing
software and your setup's aggregate polyphony can handle it, you can
add Velocity splits under each zone. If you have at least a stereo rig,
mapping Velocity to Pan Position is a breeze.
Because of its higher resolution, Pitch Bend is a great candidate
for mapping multiple controller messages. Try assigning downward bends
(0 to -8,191) to control Pan Position, and upward bends (1 to 8,192) to
Portamento Time. Some MIDI remapping tools let you send the original
message along with the remapped data. Remap Pitch Bend to a CC number
that controls filter cutoff in your synth, for example. (Consult your
synth's documentation for the relevant CC number.) With a raucous,
resonant patch, you can bend notes and create a wah-wah effect at the
same time. Some software processors allow multiple maps. If that's the
case, add the CC that affects resonance and invert the values relative
to filter cutoff for some truly squelchy-sounding leads.
FIG. 5: In the Mixer
Strip (Center) in Digital Performer's Mixing Console, incoming MIDI
data passes through the transposition plug-in and then is fed to the
arpeggiator. The windows surrounding the strip are the programming
controls for the transpose function (left) and the arpeggiator
Harmonized leads sound impressive and are great fun to play. You can
use remapping to create notes that play in parallel with your original
line or that play according to a specified key signature. For even more
interest, feed the harmonized line through an arpeggiator. For example,
Digital Performer's Mixing Console offers slots to insert real-time
MIDI processors. Insert a MIDI-transposition processor using harmonic
transposition, followed by an arpeggiator or delay processor (see
Fig. 5). Cakewalk Sonar, Steinberg Cubase, and Emagic Logic
offer similar capabilities.
GET OUT THE MAP
Of course, I've only skimmed the surface of a very deep pool of
expressive possibilities. The very nature of the MIDI protocol is an
invitation to transmute your music in an incredible number of ways.
Greater familiarity with your MIDI gear will reap rich musical rewards,
and experimenting with remapping may produce some surprising
Marty Cutler has recently relocated to Brooklyn, New York,
where he teaches MIDI and Sound Design. He is currently playing banjo
with the John Carlini Quartet. Special thanks go to Clint Ward at
Emagic and Michael Lambie at Sound Quest.
The following are just a few examples of utility
applications for transforming MIDI data on the fly. I found these and
many other programs at the Shareware Music Machine (www.hitsquad.com/smm).
Sound Quest offers MIDI Tools 1.0 (Win; $89), a suite
of MIDI utilities, including MIDIMapper, a standalone MIDI processor.
With the addition of a MIDI routing application such as Jamie
O'Connell's MIDI Yoke or Hubert Winkler's Hubi's MIDI LoopBack Device,
MIDIMapper can also stream the data into your sequencer. MIDIMapper's
real-time capabilities include harmonizing; creating parallel intervals
or octave doubling; and performing seven-way Velocity processing with
multiple splits, scaling, and limiting. The program also lets you
reassign MIDI channels and continuous controllers and apply MIDI
filters, note inversion, and more.
MIDI-OX 6.5.1 from Jamie O'Connell and Jerry
Jorgenrud is freeware, but if you're a developer or professional
musician, you'll need to pay the $49 license fee. The program runs on
Windows 95, NT, and later versions through XP. MIDI-OX is a
multifaceted utility, covering everything from System Exclusive
librarian tasks to real-time MIDI mapping and filtering. It can also
display incoming MIDI data, which is handy if you need to troubleshoot
your signal flow. MIDI-OX also lets you generate MIDI data with your
ASCII keyboard or with the program's built-in control panel.
FIG. A: SubtleSoft
MIDIPipe lets you use microtonal scales with instruments that support
the MIDI tuning standard.
On the Mac side, Nico Wald's freeware SubtleSoft
MIDIPipe 0.61 (Mac OS X) is an easy-to-use program with a healthy
variety of mapping capabilities. It offers event delays, channel
filters and routers, channel splits by note number, a randomizer that
arbitrarily changes parameter values for any channel-based MIDI
message, and a Microtuner to apply a variety of different standard and
customizable microtonal scales (see Fig. A).
Granted Software's ReMIDI 04.b is another free Mac OS
X program. It may seem like a one-trick pony at first glance: it
provides chords or arpeggiator patterns from individual notes. However,
the arpeggiator is programmable; you program rests by Control-clicking
on one of the squares that represent an arpeggiator note. Dragging a
square up or down in its grid changes its pitch. You can also save
edited arpeggiator patterns. The arpeggiator is a relatively simple
one; the ability to program accents, for instance, is not supported.
Nonetheless, choose MIDIPipe as an input, and the possibilities
increase tremendously. Microtonal, channel-split arpeggiators,
FIG. B: Eric Huffman's
Megalomania sports an easy-to-use graphical interface where
MIDI-processing modules are linked with virtual patch
If you are using Mac OS 9 or earlier, be sure to
check out Eric Huffman's Megalomania 1.2.3. It lets you patch as many
processing modules together as you need (up to the memory constraints
of your computer). It's a remarkably flexible program with a graphical,
modular user interface somewhat reminiscent of Digidesign's late,
lamented Turbosynth (see Fig. B). You drag processing tools into
the main screen or load them from the menu bar. Double-clicking on a
processor icon reveals its programmable parameters. The program has
been available for quite some time now, and its minimum system
requirement is a Mac Plus. Nevertheless, there's a ton of
MIDI-processing power in this program, including the ability to shape
events with hand-drawn graphs and envelopes.
tel. (888) CAKEWALK or (617) 423-9004
tel. (530) 477-1051
Mark of the Unicorn (MOTU)
tel. (617) 576-2760
Sound Quest Inc.
tel. (800) 667-3998 or (250) 478-4337
Steinberg North America
tel. (818) 678-5100
Web www.us.steinberg.net or www.cubase.net