Now that we have discussed the language and hardware of MIDI for the last installments, it’s time to delve into MIDI sequencers. This column will be dedicated to the general function of sequencers as well as techniques commonly involved in their use.
So what exactly is a MIDI sequencer?
A MIDI sequencer collects MIDI data “in sequence” – in the order that it is to be played back. It is either a computer program or a set of functions packaged into a keyboard/synthesizer workstation. Separate stand-alone hardware sequencers also exist, but were much more common in the 80’s.
A MIDI sequencer let’s you record, edit, and playback MIDI messages. The typical sequence is much like a musical score. The data in a sequence might stand for things like what notes are to be played, for how long, at what dynamic level, and by which instruments, among other types of performance information.
What a MIDI sequence does not contain is the actual audio. Just as the musical score needs performers to translate instructions to sound, a MIDI sequence needs synthesizers and/or samplers to actually generate audio.
The advantages of MIDI sequencers
The MIDI sequence is very simple to edit. You can view and correct the data in several forms: As text – letters and numbers – just as with a document in a word processor ; as on-screen symbols where you can move it around on grids; or as music notation (available on most, but not all, sequencers).
The actual sound (called a patch or program) used to play back a sequence can be reassigned at any time. Just as you can ask different players to perform the same orchestral part, you can swap out and reassign sound programs for MIDI playback. If you send a sequence of MIDI Channel 7 events with a Program number 23 to a synth that’s set up to respond to MIDI Channel 7, you’ll hear whatever sound is stored on that synth as sound #23. If you send the same sequence to another synth, chances are that it’s sound 23 won’t be identical to the other sound unless the synth is the same make and model with the same sound set in memory.
Disadvantages of MIDI sequences
This freedom and unpredictability of what sound will play your sequences can cause problems when you transfer the project to another synthesizer or studio where the sounds might not match. The General MIDI (GM) standard was put in place to help with this; all GM program numbers and sounds are standardized – but even with GM your results may vary greatly. For example, sound program #1 in General MIDI is always Grand Piano patch, but that still doesn’t mean that all GM instruments and their GM Grand Piano patches sound the same.
For similar reasons, archival can also be an issue. A MIDI session that is saved can be recalled years later for remixing or reworking; the synth that was used to get those sounds, however, may have been sold, “upgraded” or made obsolete by newer technologies or operating systems. Matching sounds exactly can only be done reliably by using the same ROM-based patch on the same make/model of synth or when using a virtual synth (of the same version, on the same type of system).
Using SysEx to help recreate old performances
If there’s a chance of using the same type of synth down the road as the one you used when composing a sequence, you can ensure that your music will sound the same even if it’s someone else’s instrument you’ll be using. But it has to be the same make and model, and it has to have either unerasable ROM factory sounds from which you picked one that worked just fine as it is, or it has to have user memory, where the user can store edited and customized sounds of his/her own.
If the synth has user memory available, then MIDI comes to the rescue: Save the actual patch synthesis information in your sequence, using System Exclusive message (called a patch dump). By creating secondary tracks for your SysEx information you can quickly send the appropriate sound data to the synth before having it play the sequence. First, however, you have to record the data from the synth to the sequencer.
For example, if track 1 of a 16-track sequence uses a particular organ sound from your Yamaha Motif on channel 3, create another track (say, track 17) which also references the Motif on track 3. Label the track something meaningful like “track 1 – patch dump” or “Motif organ patch SysEx.” On the face of the Motif, select the organ patch and prepare to do a SysEx patch dump (refer to your manual for how this is done on your synth). Mute the output of track 17, begin recording, and send the patch dump from the synth to the sequencer.
Now, whenever you load up this sequence you can send this patch to the Motif by muting track 1 and playing the messages recorded on track 17. Then mute 17, unmute 1… and you’re ready to go. This is true even if the original organ patch had been erased from the Motifs memory! (Remember to enable the reception of the SysEx data on the synth – that’s usually a local function.)
This exchange of SysEx data can be done for just one sound, or for the entire user-memory contents of the synth, including programmed settings for its onboard effects (if any). This is called a bulk dump.
Note that some older synths may require some more complicated exchange of data to save and restore SysEx patch dumps; a common feature on these old machines is called handshaking, where the synth sends a small chunk of data and waits for a “yes I got it properly” from the receiver before sending more. If this is the case, you can’t simply save a patch dump in a sequence, and will require a patch librarian program to save and restore your sounds. There are a lot of these librarians out there, many of which are free or available at very low cost.
There was a time when personal computers could easily handle MIDI but were not powerful enough to handle digital audio as we use it now. That’s why many DAWs started life as MIDI sequencers, and now most of them also handle audio; the list includes Steinberg Cubase and Nuendo, MOTU Digital Performer, Apple Logic and Garage Band, Ableton Live, Mackie Tracktion, Avid ProTools, Cakewalk SONAR, Sony Acid Pro, Propellerhead Reason, and many more….
Sequencer Layouts and Basic Functions
Most have the same basic function set and similar fundamental user interfaces. MIDI note editing can be done in a main edit window (track setup window), a player piano-style window, in a musical notation page, or as a text-based event list. In many sequencers, either secondary pulldown windows or separate window strips can be used to focus in on (and edit) such things as continuous controllers, pitch bend, aftertouch, and note velocity. Though the actual names for each of these windows varies from sequencer to sequencer, their basic functionality does not.
Track setup window
This window (whatever it may be called in a particular sequencer) is the top level for a sequence. All of the tracks are displayed at once and their basic settings can be changed here. You can set each tracks name, instrument/channel, and basic program (patch), as well as controls such as mute, record enable, and solo. Sometimes, miniaturized displays of MIDI regions (or chunks) allow an overview of what’s happening in the sequence as a whole. Basic editing and organization of regions is usually included along with possible looping functions.
The track setup (or arrange) window is useful for arranging the musical form of a piece. Entire sections of the tune (such as chorus, verse, intro, bridge or outro) can be moved around, copied, pasted, duplicated, and/or looped.
The event list is a text-based display of MIDI messages sorted by start time. Every aspect of all MIDI message types can be viewed here. This includes various system messages which may not be viewable in any other windows. To unclutter this display, you can select particular message types you wish to see, and the window will hide others.
Both start times and note durations are expressed in terms of measures, beats, and subdivisions of the beat called pulses (or “ticks”). The exact number of pulses per quarter note (ppq) varies from sequencer to sequencer. Many of the newer sequencers (or versions thereof) have a ppq rate of 960 or greater. 480 ppq should be considered the minimum for today’s professional applications. At 960, an eighth note would be 480 pulses long, a quarter note triplet would be 640, and a dotted quarter would be 1440. At 480 ppq, these figures would be cut in half along with the overall timing resolution for MIDI events.
Since the duration of a quarter note is based on musical tempo, ppq is a relative time base. Increasing a sequences tempo actually increases its timing resolution. In the past, at 480ppq or less, some artists would increase their ability to express timing nuances during very slow passages by doubling note durations and tempo. This gentle fib gave them twice the number of pulses per note, but made going back and forth from the score and the sequence a bit confusing…. Measure 27, beat 4 of the score would be at measure 54, beat 3 of the sequence!
The event list is particularly handy for making very precise edits without necessitating a lot of cumbersome zooming in and out. One common edit that benefits from this is when a patch change is inserted on a channel between notes. All notes before the change should be turned off at least a couple of pulses before the patch change is transmitted. Similarly, new note-on messages will need to wait a few pulses after the change is sent to allow the new sound to be fully loaded. When either of these warnings is not heeded, there may be clicks or pops in the audio stream, sounds may be truncated, or some notes may not sound at all. Editing to such a small number of pulses is easier to do in the event list.
Changing channels in the middle of a track (something I’ve already warned you not to do) also requires all notes to be turned off before the change and at least one pulse before new notes are sent.
Player piano roll
Basically, the player piano roll window is a chart of pitch over time. This is usually the most intuitive place to edit the MIDI note data for a particular track. Usually, clicking and dragging the front of the note will change the notes start time, while clicking at the notes tail will allow you to lengthen the note. Clicking in the middle often lets you slide the note up and down chromatically (transposing it).
In this window, as in the track setup (or main edit), it is also easy to copy, paste, and/or duplicate larger musical passages. Here, however, you are limited to working with a single track of information at once.
This display method is good for musicians who are most comfortable with traditional musical scores, or for those looking to create both a musical sequence and a score simultaneously. It is especially cool for composer/arrangers who need both a demo of their work and a performance scores for the live musicians who will eventually be playing the piece.
The drawback here is the loss of the rhythmic and tempo variations that are used in a performance to create temporal musical nuance. Since human performers rarely play exactly on the beat, a recording of an actual live performance can look completely ridiculous when placed in traditional notation. Conversely, a MIDI sequence that looks good in this view will often sound very stiff when played back. The more advanced programs allow for this by quantizing only the notation display (doing away with the tiny fractions of rhythmic note values) but leaving the performance data alone.
Control strips are smaller windows (or window pull-downs) similar to the volume automation graphs on the audio channels of most DAWs. They allow you to view and edit note velocities, pitch bend data, aftertouch, or individual controller codes. These windows offer some of the most powerful editing functions, in terms of the number of messages edited per click of the mouse.
For instance, crescendos and decrescendos are easily accomplished by drawing in velocity curves across a musical phrase. Changes in timbre can be accomplished by drawing modulation or aftertouch. Even automated filter sweeps may be possible by utilizing controller codes and your synths internal processing (see your manual). Try drawing automation up over one measure, down over the next and repeat…. Also, if you own any external MIDI controlled effects boxes or digital mixers, then a tremendous amount of external automation may be available through similar methods.
These are very similar to a control strip (and sometimes they are one) but are dedicated solely to tempo. Utilizing the automation possibilities here allows you to make a MIDI performance more nuanced with rubato, accelerando, or outright tempo shifts.
Mix and Transport windows
When using virtual instruments it is especially important to keep the distinctions between MIDI and audio in mind. Often, there is a dedicated MIDI track/channel to control the playback of a virtual instrument, the output of which has a dedicated audio channel. Mixing with the audio channel is both more direct and maintains a higher fidelity. Adjusting pan or volume on a MIDI channel sends the appropriate MIDI controller codes to instruct a MIDI instrument to accomplish these functions. While this offers convenience of control, there are a few pitfalls to watch out for.
On most external synthesizers, volume commands are often made by scaling the amplitude of the output samples. This reduces the signal-to-noise ratio on that channel. The noise floor will further increase as further channels are summed and go through more conversions (D/A/D). Furthermore, most synths remember the last MIDI volume command sent them. Many even retain this value after power cycling. The problem here is that you may use a MIDI volume fadeout at the end of one tune and when you later begin another tune, that channel is mysteriously silent. Even if the volume fader on the sequencer comes up at “unity” gain, the synths internal mixer can still be set all the way down. Since the internal mixer settings are probably only displayed through some deeply embedded sub-window, this can create a lot of unnecessary confusion. It is much better to leave the MIDI volume at max (127) or unity (around 100) on all channels on both the sequencer mixer and internally within the synth itself. All level mixing should be done in the audio domain, preferably at higher resolutions.
Now, that having been said, MIDI channels may also contain plug-ins such as delays, arpeggiators, and harmonizers. Many of these are well worth exploring. As they are accomplished by generating or modifying MIDI data, rather than audio, they are a lot less taxing on your processor than their audio counterparts, and in most cases they don’t do anything irrevocable that will come back to harm your sound later (as turning down the volume via MIDI might do).
As on audio recording platforms, sequencer transports contain playback and record functions along with information about location, clocking, sync and other aspects of the session. A DAW that handles both MIDI and audio will use one set of transport controls for both audio and MIDI functions at once: after all, one would normally hit the Play button and expect to hear both the recorded audio and MIDI data in a song playing back together!
That’s all we have room for this time; in our next installment we’ll discuss getting data into a sequencer and working with it once it’s there, archiving MIDI sequences, MIDI formats, and wrap up with some MIDI tips and trickery….
John Shirley is a recording engineer, composer, programmer and producer. He’s also a Professor in the Sound Recording Technology program at the University of Massachusetts Lowell and chairman of their music department. You can check out some of his more wacky tunes on his Sonic Ninjutsu CD at http://www.cdbaby.com/cd/jshirley.
Supplemental Media Examples
A short MIDI sequence assembled in ProTools using virtual instruments (mostly Xpand!) and drum samples. This piece is by Drew Hooke and was made as part of a short class assignment for my Recording Production class at the University of Massachusetts Lowell, where Drew is finishing up his bachelor’s degree in Sound Recording Technology. You can listen to his latest commercial project at HTTP://listn.to/danceatlantic. TCRM24_1.wav
This piece, by Brett Boland (and written to cover the same assignment in the same class), was also done using Xpand! in ProTools. You can hear some of Brett’s other recent work at hetfieldandhetfield.bandcamp.com . TCRM24_2.wav