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.
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).
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.
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-such as Cakewalk Pro Audio's native groove 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.
FIG. 2: Most groove-quantization tools let you determine how much the timing, duration, and Velocity values of the notes will be affected.
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!
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, such as the MIDI Effects in Cakewalk Pro Audio, or integrated directly into a program as it is in Steinberg's Cubase and Emagic's Logic Audio. 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.
Cubase VST offers yet another type of MIDI processing: its MIDI Processor function allows you to apply MIDI effects not only to data you've recorded but to live input as well. And even more features are available in Logic's Environment window, where you can design complex "networks" of processes that alter MIDI data in numerous ways. If you prefer, you can use one of the numerous user-created Environments available from Logic-based Web sites, such as Lynn Sasso's at www.swiftkick.com.
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.
FIG. 3: Sonic Foundry''s Sound Forge includes the Sonic Foundry Virtual MIDI Router, which allows you to “pass” MIDI data directly from one application to another.
There are a number of great uses for this technology. For instance, Sonic Foundry's Sound Forge includes the Sonic Foundry Virtual MIDI Router (SFVMR), which lets you synchronize and trigger Sound Forge from your sequencer or drive your sequencer from Sound Forge. Installing SFVMR adds four virtual MIDI In and Out ports to your device lists (see Fig. 3). You can use SFVMR to route MIDI data between any MIDI applications. For example, if one application sends MIDI data through SFVMR Output 1, another application can receive that MIDI data via SFVMR Input 1. The MIDI data is routed solely through software; no hardware is required. (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.)
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, such as the Alesis ADAT and Tascam DA-88, 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.