MIND over MIDI Home Page Customers View MIND over MIDI Projects Creative Arts at MIND over MIDI About MIND over MIDI Contact Us Contact Us

MIND over MIDI Productions Inc.

Slave Driver Review, Electronic Musician

By Jim Pierson-Perry

MIDI mapping and
system control for live
performance.

Scene from MIDI Hell: The vibes are great, the crowd is wild, and your band is smoking through the current set. The guitarist signals for an inspired solo, but you're stuck with a prerecorded sequence and don't dare switch it off to play live. You frantically scream "no," cower from the evil looks of the other band members, and wonder if you'll have a job after the show.

Sound familiar? If so, you need Slave Driver, Atari software designed to meet the needs of performing MIDI musicians. It integrates a sequence player and bulk SysEx librarian with a comprehensive, flexible MIDI mapper. Slave Driver was written by a MIDI musician specifically for live use. It provides maximum real-time control of your MIDI system without getting in the way of your playing.

The program is a major upgrade of the earlier UltraMIDI program, which is no longer supported. Owners of UltraMIDI or older releases of Slave Driver can (and should) upgrade to version 2.0 for $45.

SETUP AND DESIGN

Slave Driver runs on any Atari ST or STe computer, including the STacy portable, with either a color or monochrome monitor. The program is not compatible with the new TT computer or large-screen monitors. Stock 520 ST users need a double-sided floppy drive to read the program disk. I found no compatibility problems with common desk accessories or system enhancements.

Version 2.0 uses a peculiar type of copy protection that writes to the key disk. You must insert the key disk within 25 seconds of loading the program, or the computer freezes and must be rebooted. Fortunately, the company has just released version 2.02, which has no copy protection.

A separate performance version of the program also is included. The main program is used to create and test your setups, but you only need to take the performance module to a gig. This feature dramatically cuts down on program memory requirements, freeing up more memory for your music files.

The manual is comprehensive, but it suffers from an incredible number of typographical errors. A new manual should be available by the time you read this. The program disk includes several well-documented example setups and files, and an impressive demo lets you watch a "ghost user" operate the program. The demo also is available from the Atari and MIDI libraries on the GEnie BBS.

YES, MASTER

At heart, Slave Driver is a software MIDI mapper. It sits in your MIDI datastream and monitors the messages, rerouting or transforming them according to your wishes. Beyond that, it plays Standard MIDI Files and sends SysEx messages, both of which can be triggered from incoming MIDI events. Virtually all MIDI messages are supported, with the annoying exception of Polyphonic Aftertouch.

All program operations are based on "Master/Slave" relationships. A Master is a user-defined MIDI event for which Slave Driver watches. When this event is detected, the program sends a predefined set of up to 255 substitute events (Slaves) in its place.

Master and Slave events have three user-definable components: MIDI Channel, Event Identification, and Value Range. Any or all of these components can be altered in the relationship by direct substitution or scaling. For example, Note On/Off events include a pitch range that extends from a single note up to the entire keyboard, although the range must be contiguous. MIDI controllers are defined by ID numbers, and the more common ones are also identified by name (MIDI Volume, Sustain Pedal, etc.)

The value range provides a variety of selection criteria for Master events and scaling for Slaves. For example, several Masters can be created for a single Note On event, each active only within a certain velocity range. Scaling can be additive (which also is called "Bias"), or multiplicative, using positive or negative values.

For example, let's say you define a Note On event from a keyboard synth on channel 2 as a Master. You might create a set of Slaves that sends corresponding Note On events to synths on channels 2 through 5, transposing the pitch and scaling the velocity independently for each. The result is a fat, multitimbral chord when you play a single key.

LEVELS OF CONTROL

Slave Driver uses a structured hierarchy of increasing power to give you as much control as you need. Up to 255 Master/Slave relationships can be active at any time; this ensemble is called a Map. Switching from one Map to another activates a new set of relationships, with corresponding changes in how Slave Driver processes the MIDI datastream (e.g., change split points and volumes during a song).

In addition to the activating relationships, Maps can perform additional operations: Send, Reset, and Trigger. Send stores up to 255 commands for Slave Driver to execute when the map is activated (set initial volumes, send a SysEx patch bank, etc.). Reset restores nominal settings and performs other cleanup tasks when you exit the map. Trigger lets you define a unique message, such as a program change that activates the map over MIDI rather than from the Atari keyboard.

Up to 255 Maps are contained within a Song, which is saved to disk. At the next level of hierarchy, a Set holds up to 255 Songs. All Maps within a Set draw from a common pool of sequence and Sysex files (up to 99 of each) that is associated with the set. Only the file directory paths are saved with the Set file, rather than the actual data. This lets you use the same sequence and SysEx files in different Sets without taking up redundant storage space.

After loading a Set, you can use simple Atari keyboard commands (or Trigger events, if they're defined) to move between Maps and songs as you play. Notes depressed while a Map is active continue under its influence until released, even if you change Maps in the meantime. This allows you to drive sustained notes with one Map, then use another Map to govern a lead line.

BASIC MAP-MAKING

The workscreen for creating and editing Maps, Songs, and Sets is illustrated in Fig. 1. The main display shows one Map at a time, selected for the desired Song in a Set file. The windows at the lower right indicate the sequence and SysEx files used in the current Set. Scroll arrows in the Master/Slave windows select different relationships.

The editing interface is well-designed and easy to use. Map entries are selected using the Atari keyboard, onscreen graphic controls, MIDI input, or any combination thereof. The keyboard and value input controls are particularly cool. You click and drag to define the Master range, then move the display, or click and drag again to define the Slave range. If you want to use the existing range definition, just click on it, and the values are entered automatically.

The interface isn't perfect, however. For example, you can't try out a Map from the edit workscreen. I found it awkward to keep flipping between the edit and play modes to tweak the maps.

At every stage, Slave Driver provides aids to simplify editing and validation. Trigger events are checked automatically to prevent duplicates, and relationships are checked for compliance with MIDI protocol. Copy, paste, and delete functions operate at the relationship and Map levels to facilitate repetitive editing tasks. Other editing aids let you reorder Song files and edit the sequence and Sysex file pool.

My biggest problem was keeping track of what my Maps did and which sequence and SysEx files were being used. I'd like to see Slave Driver provide an optional text field within a Map so you could view or print it for documentation. Anther improvement would be the ability to print a list of Song Triggers, as well as the sequence and SysEx files used in a Set. Currently, only the Song titles in a Set can be printed.

SEQUENCES AND SYSEX

One of Slave Driver's strongest features is the ability to trigger the playback of sequence or SysEx files. Sequences must be in MIDI file Format 0 (single track). I'd like to see the program trigger Format 1 files, too, although you can use Hybrid Arts' MIDIMOVR program (available on GEnie and other BBSs) to convert files from Format 1 to Format 0. Remember that Slave Driver only can play sequences; you need a separate sequencer program to create or edit MIDI files.

Slave Driver includes Load/Erase commands to maximize the efficient use of computer memory. Opening a Set file activates the sequence and SysEx file indices used by the Maps within the Set. Actual data isn't loaded until called for by a Map.

A sequence can be played once or looped continuously. To prevent the scene from MIDI hell depicted earlier, divide a song into several parts (verse, chorus, bridge, solo, etc.), and play them as needed. Loop a background sequence while your guitarist takes an extended solo, then trigger the next sequence to continue on with the song.

Slave Driver treats playback tempo as a mappable event. You can default to the base tempo from the sequence file, set a new fixed tempo, or control the tempo in real time with the mod wheel or other controller.

Sysex files are created and stored as Standard MIDI Files using the program's bulk librarian. A dialog box lets you create SysEx messages, called prefixes, that direct target devices to download patch or other SysEx data to Slave Driver. These prefix files can be saved to disk and reused.

Some devices include the MIDI channel within their SysEx data, which might become a problem if you later operate the device on a different channel. If Slave Driver recognizes the SysEx format, it can change the channel as needed when sending the file. A utility program updates Slave Driver to work with new devices in this way, although it only works with a monochrome monitor. If you have an unrecognized synth that channelizes its SysEx, and you're running Slave Driver on a color system, make sure not to change that module's channel.

ADDED ATTRACTIONS

Slave Driver offers some additional features for developing Maps and using them onstage. A Chain command lets you run another Atari program, then return to Slave Driver. This feature is useful with a word processor to document maps as you develop them. Automatic file backups, extensive support for command keys instead of the mouse, and a free memory indicator are other welcome aids.

A user configurable MIDI panic button provides a safety net to turn off stuck notes and reset controllers. A special version of the playback module sends program messages to the LCD displays of Yamaha DX7 or Roland D-series synths (manufacturer's note: Alesis D4 display now also supported), allowing you to leave your computer monitor at home and save space on stage.

BOTTOM LINE

Slave Driver is an excellent piece of work. Well-designed and well-implemented for its niche, it gives musicians the degree of control they want over their MIDI systems without compromising creativity or spontaneity. Despite its impressive capabilities, the program sets up quickly and is easy to use. It provides a wonderful environment for MIDI hacking, musical experimentation, or just plain fun.

On the horizon is a new revision of Slave Driver, written completely in assembly code to boost speed and provide compatibility with the Atari TT and large-screen monitors. Major enhancements include support of C-Labs MIDI Export (an interface with multiple MIDI Outs) and the ability to run either by itself, or as a desk accessory along with other MIDI software.

Jim Pierson-Perry has been using and writing about Atari computers for almost ten years. He recently bought a Mac and can't wait to duplicate his software library and explain the cost to his family.

Call 1-866-966-9779 for rates and availability, or email help@mindovermidi.com.