Modern
MIDI Sequencing
Confused by quantization or stymied by sync? We'll ease
your pain.
By Scott R.
Garrigus
For
more than 15 years, MIDI has exerted a tremendous influence on
all types of music making. One of the most fundamental applications
of this technology is recording, storing, and manipulating sequences
of MIDI messages that represent all sorts of performance gestures
such as playing specific notes with specific durations and volumes,
stepping on a sustain pedal, moving a pitch-bend wheel, and so
on. This is performed by using a MIDI sequencer, which can be
a dedicated hardware box or a software program running on a computer.
A
basic MIDI-sequencing setup might be a MIDI keyboard and a computer
with a MIDI interface running a sequencer application. MIDI cables
connect the MIDI Out from the keyboard to the MIDI In of the computer's
interface, and also connect the MIDI Out from the interface to
the MIDI In of the keyboard. (An even simpler setup consists of
a single keyboard workstation, which includes a built-in sequencer.)
Such
a setup lets you record and play your performances on the keyboard.
It also lets you change the performance in many ways. For example,
you can change a note's length or Velocity; move it to a different
rhythmic location; or manipulate Volume, Pitch Bend, Aftertouch,
Modulation, or Program Change. Whatever MIDI data you record,
you can change. Of course, how useful this is depends on the sophistication
of your sequencing software or workstation's sequencer.
Typical
sequencing software can display the recorded MIDI data in several
different ways, including a tracklist, event list, and piano roll.
Many also provide standard-notation displays (see Fig. 1). Each
view gives you a different way to display and edit the same data.
An event list lets you edit single MIDI events with precise numerical
accuracy. It also gives you access to System Exclusive and other
nonperformance MIDI data.
A
piano roll provides a graphical representation of note and controller
data, so you can easily edit the expressive qualities of your
music, such as crescendos and diminuendos. A notation display
lets you change your music by dragging and dropping notes on a
virtual staff page.
(see
figure #1)
FIG. 1: A typical sequencing application displays a tracklist
(upper left), event list (lower left), and piano roll (upper right).
Many also provide standard notation editing and printing (lower
right).
These
common tools barely scratch the surface, though. Most sequencers
also give you the power to manipulate MIDI data in more global
ways, including quantization, real-time processing, virtual routing,
and synchronization. In fact, today's sequencers provide so many
features, you might be missing out on some of the more complex
but very useful ones.
In
the Groove
A
real-time MIDI performance is not always as accurate as it should
be. As you play, you're likely to perform some notes slightly
before or after their intended rhythmic position, or hold some
notes longer or shorter than you mean to. A sequencer's quantize
tool can alter the timing and durations of your recording so they
fit a specified time grid with fixed intervals.
For
example, you might apply a 16th-note grid to a run of sloppily
played 16th notes: any misplaced notes move to the nearest 16th-note
timing interval. Those notes then play back with perfect timing
(unless a note is so early or late that it falls closer to a note
before or after the intended location in the grid, in which case
it is moved to the wrong rhythmic position).
Applying
this sort of strict quantization results in very precise, mechanical
rhythms, which is fine for certain types of music. But if you
want your music to retain a more human feel, see if your sequencer
includes a groove quantize feature. Groove quantization uses a
time grid based on a prerecorded rhythmic pattern called a groove
pattern rather than fixed intervals. A groove pattern might simply
contain timing information, making it compatible with different
sequencer programs. Or it can be a proprietary format containing
information on timing as well as on note duration and Velocity.
Basically,
groove quantization works by imposing the timing, duration, and
Velocity values of one piece of music onto another. For example,
suppose you record a melody that sounds a bit too mechanical,
but your bandmate slams out a really kickin' MIDI bass line that
has just the feel you want. You can copy the bass track and use
it as a groove pattern to quantize the melody track. This will
impose the feel from the bass line onto the melody without changing
the pitch of the notes.
This
is just one of the many uses for groove quantization. Most of
the groove-quantization tools (and straight quantization tools)
give you control over how much influence a groove pattern or grid
has over the data you're quantizing. You specify (as a percentage)
how much the timing, duration, and Velocity of the notes will
be affected (see Fig. 2). This lets you correct off-tempo tracks,
add complex beat accents to each measure, synchronize rhythm and
solo tracks, align badly timed tracks to one with good timing,
and steal the "feel" from tracks as discussed earlier.
As
a matter of fact, groove quantizing has become so popular, companies
now sell groove-pattern files that let you steal the feel from
tracks that have been recorded by professional keyboard, drum,
and guitar players. It's almost like having Steve Vai play on
your latest project!
(see
figure #2)
FIG. 2: Most groove-quantization tools let you determine how much
the timing, duration, and Velocity values of the notes will be
affected.
Real-Time
Processing
Some
sequencers let you process MIDI data only offline. If you want
to quantize a track, scale a group of Velocities, or filter specific
types of events from a track, you have to do it when the music
isn't playing. Also, the selected MIDI data is altered destructively.
Real-time
processing lets you change the MIDI data while it plays, but it
doesn't actually alter the data. This type of processing might
be found as a plug-in, or integrated directly into a program.
Real-time MIDI processing is typically nondestructive because
it doesn't change the recorded MIDI data; it just affects the
stream of data that's being played back.
Some
of the types of MIDI processing you will find are effects for
quantizing, adding echo and delay, rechannelizing, filtering events,
time stretching, adding arpeggios, analyzing chords, and changing
note Velocities. It's usually possible to experiment with numerous
types of settings, and you don't have to worry about your data
being irreversibly altered in the process. For instance, you can
easily try out many different quantization values as you listen
to find the one that works best. Then, if you want, you can permanently
apply the effects to your data, just as you would with any other
editing command.
Virtual
Routing
If
you have a multiport MIDI interface, it probably lets you route
data from any In port to any Out port. For instance, you might
route the data coming into MIDI In 1 to MIDI Out 3. This is useful
for sending the data from your MIDI controller to another synth
in your setup. Something similar can be done with different software
applications running simultaneously on the same computer. It's
called virtual MIDI routing.
A
virtual MIDI router is a software driver that simulates any number
of MIDI ports on your computer. You install it just as you would
any hardware device driver. In Windows, the virtual MIDI ports
that the router creates are listed under MIDI Devices and Instruments
in the Control Panel Multimedia applet, along with all the other
hardware-based MIDI ports. This lets you select any of the virtual
MIDI ports in your sequencer (or other MIDI applications) as if
they were hardware ports. By doing so, you can transfer MIDI data
between software applications that are running on the same computer
without using any MIDI interface hardware. Hubert Winkler's Hubi's
LoopBack and Jamie O'Connell's MIDI-OX are both free virtual routers
that you can find on many MIDI sites.
In
Sync
Even
though hard disk recording is extremely popular, multitrack tape
is still used in many studio situations. And though software-based
sequencers are more common, dedicated hardware sequencers and
drum machines remain abundant.
If
you use multitrack tape or MIDI playback hardware, you could synchronize
this equipment with your software sequencer. For instance, you
might like using tape to record audio, but maybe you want to augment
these tracks with some MIDI tracks, or you might have recorded
some cool drum-machine patterns that need to be transferred to
your sequencer. These and other tasks can be accomplished with
synchronization, of which there are two main types: MIDI sync
and SMPTE time code.
MIDI
sync is used to synchronize various MIDI devices, such as drum
machines, dedicated hardware sequencers, and software sequencers.
When MIDI devices are synchronized in this way, one acts as the
master, and the others are called slaves.
The
master sends out special MIDI messages to tell the slaves when
to start and stop playback, as well as what tempo to keep. These
messages include Start, which tells the slaves to start playback
from the beginning of the current sequence; Stop; Continue, which
tells the slaves to start playing from the last stop point; and
Song Position Pointer, which identifies any point in the sequence
at which the slaves should begin playback. The master also sends
a Clock message 24 times for every quarter note, which defines
the tempo for the slaves and keeps it in sync.
The
software sequencer can be the master or a slave; when synching
MIDI devices, it doesn't matter. The master is set to Internal
Clock mode, and the others are set to External Clock mode. When
synching to tape, the sequencer should be a slave, because it
can easily adjust its tempo according to the speed of the tape
deck. In this situation, SMPTE time code is used instead of MIDI
sync. (SMPTE stands for the Society of Motion Picture and Television
Engineers, the group that established the standard.) SMPTE time
code is a complex audio signal that is recorded on one of the
tape's tracks using a device called a time-code generator. Many
MIDI interfaces also include a time-code generator, so you don't
necessarily have to buy yet another piece of gear. (This technique
is primarily used with analog multitrack tape decks; digital multitracks
can generate SMPTE time code electronically without making you
record it on one of the audio tracks.)
The
SMPTE time-code signal represents absolute time over the length
of the tape in hours:minutes:seconds:frames. (SMPTE time code
was originally developed for use with film and video, which is
why seconds are divided into frames.) For example, the beginning
of a tape might correspond to a SMPTE value of 1:00:00:00, in
which case the point one half-hour into the tape would be 1:30:00:00.
The SMPTE value at the beginning of the tape can be anything you
want, and all points after that are identified with a unique SMPTE
time-code value that increases from the starting value you specify.
SMPTE
time code is sent from the tape deck to the sequencer, which synchronizes
its performance to the tape as it plays. This type of synchronization
requires a SMPTE converter, which translates the SMPTE time code
into MIDI Time Code (MTC). The MIDI interface reads the MTC and
sends it to the sequencer. (If your interface includes
a
time-code generator, it probably includes a SMPTE converter, as
well.) MTC is equivalent to SMPTE time code, except it consists
of special MIDI messages rather than an audio signal.
As
your sequencer receives MTC, it calculates the measure, beat,
and tick that corresponds to the incoming time value. This lets
you start playback anywhere along the tape, and your sequencer
begins playing or recording MIDI data at precisely the right point
in perfect sync.
But
Wait! There's More!
We've
examined a few of the more complex but useful tools found in today's
MIDI sequencing software, but there is much more to explore. For
instance, many sequencers give you total control over MIDI devices
as well as MIDI data. You can create onscreen control panels to
manipulate your MIDI hardware right from your computer. You can
also manage synthesizer patch data and create instant snapshots
of your entire studio setup for later recall. And don't forget
the algorithmic-composition tools found in some sequencers. They
can help you jump-start a project by providing a large amount
of MIDI data to work with.
The
best way to start is reading the manual that came with your software,
cover to cover. It should tell you everything you need to know
about unlocking the full potential of your MIDI sequencer. After
that, your sequencing sessions will never be the same.
Scott
R. Garrigus is an author, musician, and multimedia expert. In
addition to frequently contributing to EM, he publishes his own
online 'zine called Comp-media. You can contact him at www.garrigus.com.
This article presented courtesy of Electronic Musician magazine.
|
|