Life's A Batch

Suppose you've just transferred your 48 kHz ADAT files into your workstation and mixed them, and now you need to convert the mixes to 44.1 kHz audio for

Suppose you've just transferred your 48 kHz ADAT files into your workstation and mixed them, and now you need to convert the mixes to 44.1 kHz audio for a CD project. Or perhaps you want to make 16 takes of a guitar part sound punchier, and you also need to process a bunch of scraping-metal sound effects. Or add 4,500 lines of dialog that must be maximized, brightened, and downsampled for a Web site or video game. There's no way you're gonna do all this stuff file by file. Life's a batch, man.

Scenarios like these are why batch sound-file processors were created. The idea of setting up a step-by-step process that runs automatically on a group of computer files has been around for a long time, but it was fewer than ten years ago-when computers exploded onto the audio- and music-production scene-that the idea began to catch on with editors, musicians, and music-software developers. Batch sound-file processors (or batch processors) started out exclusively for file-format conversion, but many of today's programs offer a much wider range of options for shaping sound en masse.

In essence, batch processors work like this: you point the program at a group of source files, define one or more processes you want applied to those files, designate a destination (and a few other target details), then click Go. The batch processor might take anywhere from 15 seconds to 15 or more hours to complete the job, depending on the specifics involved.

Once you're clear on the concept, variations on the theme become more understandable. You can start by separating batch processors into two categories: stand-alone programs and those that are part of a more comprehensive "host" program. Airworks Media's S-Link 2.1, Audio Ease's BarbaBatch 3.0, Gallery Software's TurboMorph 1.81, and Waves' WaveConvert Pro 2.3 are examples of stand-alone programs, whereas the batch processors found in BIAS's Peak 2.04, Dissidents' SampleWrench 24/96 5.0, Sonic Foundry's Sound Forge 4.5, Steinberg's WaveLab 2.02, and TC Works' Spark 1.01 represent hosted processors. Gallery's SampleSearch 2.2 is neither fish nor fowl but a utility program with batch-processing capabilities.

As of this writing, Spark has only recently begun shipping, and its batch processor is minimal. It provides little more than basic file conversion and normalization, though I expect added capability as the program matures.

Many multitrack editing environments also include some form of batch processing, although they're typically less convenient and flexible than the hosted and stand-alone programs mentioned earlier. I will therefore cover only the hosted processors in 2-channel audio editors and the stand-alone batch-processing programs; they're the ones most dedicated to the task. However, if you have a multitrack program, it's worth determining what batch capabilities it might have to offer.

To keep this article manageable, I will focus on commercially available products, although some freeware and shareware solutions-such as SoundApp for the Macintosh-also offer batch-processing capabilities. They may be worth looking into.

Feature SetsFor many people, a batch processor's most important feature is the set of file formats it can accept as input or deliver as output. The most common input formats are WAV, AIFF, and, on the Mac, Sound Designer II. However, the list can be much longer in today's programs. Sound Forge, for example (see Fig. 1), supports about 30 file formats. (You'll typically find a greater number of output than input formats because of the variety of data-compression schemes that are currently in use.)

Any batch processor can handle the WAV and AIFF formats. You'll usually find a selection of common compression schemes as well, such as RealAudio or RealSystem G2, MPEG (especially MP3, the current fave), Shockwave, IMA ADPCM, and QDesign. In some cases, lesser-known or even obscure formats are supported. When making a purchase decision, be sure to check that the program you're considering can handle all the necessary input and output file formats.

You'll probably find a much smaller range of sampling-rate and bit-depth options than file formats; still, there can be surprising variation among programs. Any batch processor can handle 8- and 16-bit files. If you're working with 24-bit files, first make sure the program itself can handle them, then worry about your plug-ins. BarbaBatch can even output 32- or 64-bit files!

One other thing to check is whether the program uses dither when it reduces bit depth. In BarbaBatch, WaveConvert Pro, and Spark, for example, dither is available, but you must enable it by checking the appropriate box. If dither isn't mentioned, you might have difficulty ascertaining whether it is being used. If it isn't included in the program, you can still obtain it through a plug-in such as Waves' IDR.

The basic set of sampling rates includes the obvious 48 and 44.1 kHz options, but you may also find pull-up and pull-down rates (see "Square One: Picture Perfect Sound" in the September 1999 issue of EM for more on this topic), as well as 22.05 and 11.025 kHz rates for Web-site and multimedia development.

Beyond file and compression formats and sampling-rate and bit-depth conversion lies a vast sea of utility and processing features, which vary widely from product to product.

The most essential of these features is the selection of processing capabilities, offered in two flavors: onboard and plug-in. Although several stand-alone programs provide good processing options, hosted programs have the clear advantage in both areas. The most common processing functions in batch conversion are gain/dynamics and EQ.

The host programs considered here are all comprehensive 2-channel destructive editors, and each boasts a large bag of onboard-processing tricks. In some cases, such as with WaveLab, all the program's functions are available for batch processing. Peak, on the other hand, offers most-but not quite all-of its features in its batch processor (see Fig. 2). Either way, many powerful choices are available for batch processing in a hosted environment. Sound Forge's RMS normalization feature is particularly useful for dialog.

Of the stand-alone programs, WaveConvert Pro (see Fig. 3) has one of the nicest selections of onboard processing, including EQ curves (calculated to compensate for conversion losses), gain maximization (essentially the guts of Waves' famous L1 Ultramaximizer plug-in), and several gating and filtering schemes. At the opposite end of the spectrum, S-Link offers no processing aside from normalizing.

Plug-ins offer greater possibilities beyond onboard processing and are available in many programs. Hosted programs are also superior in that they can often accept more than one plug-in format. WaveLab, for example, can use DirectX, VST, or WaveLab plug-ins. Many plug-ins are available in VST and DirectX. SampleWrench and Spark are the only hosted programs that accept no plug-ins in their batch processors.

As for stand-alone programs, WaveConvert Pro works with Waves plug-ins and TurboMorph supports the Premiere format, but S-Link and BarbaBatch do not accept plug-ins. Most batch processors that use plug-ins let you string together a list when you want to execute a chain of processes. TurboMorph takes the unique and eclectic approach of requiring you to copy the program for each process you want to run. You then start them all up and feed the output of one to the input of the next.

Because 24-bit files have only recently come into wide use, some batch processors are unable to handle them. However, the fact that a program can handle 24-bit files doesn't necessarily mean that its plug-ins can. Most manufacturers who haven't made their plug-ins 24-bit capable either plan to or are already working on it. Nonetheless, you may have to do some legwork to make sure the plug-ins you need provide support for high-resolution audio files.

Some batch processors-such as Sound Forge and WaveConvert Pro-let you generate file-conversion previews, which let you hear and compare various settings. BarbaBatch, TurboMorph, and Sound Forge let you designate that a batch process be executed whenever files are dropped into a designated folder. Should you need documentation, some batch processors, like Peak's, can generate a text document logging batch execution.

One utility covered only lightly by existing batch processors is file renaming. Most batch processors can be set to add or change three-letter Windows (nee DOS) file name extensions. Only SampleSearch has the built-in ability to rename files from a text list of names, although BarbaBatch comes with several utility programs that do the job. Freeware and shareware programs such as Drop/Rename are also handy for this sort of function.

Each program additionally offers its own "extras." WaveLab lets you set up a number of batch processes working on different file sets, all strung into a single list that gets executed in one gesture. BarbaBatch can assemble a group of files as regions in a single file, then split them again after processing (region munging).

Not all differences between programs are desirable ones. Some programs convert one type of marker into another type; for example, they may change loop markers into text markers. If markers are important to your files, run tests to ensure that the program you choose won't ruin your project when you next run a large batch of files containing markers.

By the ScriptBecause the whole idea behind batch processors is automation, scripting is an important feature. Scripting can mean either the ability to string menu commands and plug-in operations into a sequence of actions or the ability to control the program's operation through some scripting language. Where neither of these is available, the capability to store the current settings as a preset file is often provided.

Peak, WaveLab, and Sound Forge allow commands and plug-ins to be listed one after another, and then the whole script can be saved for later recall. Peak's batch processor allows the parameters of any step to be edited, and lets you specify that any step be applied only to a segment at the beginning or end of the file. All of that information then gets saved with the script.

When it comes to scripting languages, the clear winner is SampleWrench, which includes Enable, a customized variant on Visual Basic. Using a programming language is a double-edged sword, however. It means that you can create far more sophisticated processes, but it also requires you to write an Enable program to do the simplest batch process.

BarbaBatch boasts a rich AppleScript implementation, while Peak and SampleSearch are capable of responding to some custom AppleEvents.

Writing AppleScript or Enable scripts represents much more work than a simple list-based interface but offers the two great advantages of allowing extensive customization and integration with other applications. For example, a multimedia production environment could be built around a FileMaker Pro database of files with built-in AppleScripts for controlling BarbaBatch.

Of course, the "poor man's batch processor" would be a powerful macro program like QuicKeys or KeyQuencer used with your favorite audio program. Unfortunately, the heavily graphic user interfaces found on digital audio workstations do not always lend themselves to macro control, therefore complicating this method.

Performance PracticeFeatures may be important, but for many users, performance is paramount. The idea is to crank out lots of work as quickly as possible without problems. Speed is often the major concern, and rightly so. The speed of any batch will always vary with the sophistication of the process, the number of files involved, and the capabilities of the computer's CPU, but there are still big differences in basic performance levels. BarbaBatch and TurboMorph are the fastest batch processors I've encountered, while Peak is the slowest.

But speed isn't everything. I was surprised by the stability problems I found in many of the batch processors I tested for this article. This brings me back to the need for testing in your own environment. If you can't try out a copy of a program before buying it, run tests as soon as possible. If you're unhappy with a product's performance and haven't had it long, many dealers will take it back. One stability question is how well a batch processor handles large quantities of files. In multimedia and Web-site development, batches can contain thousands of them. Some programs bear up this burden; others choke.

Finally, don't forget about what many people consider a make-or-break characteristic: fidelity. In the world of sampling-rate conversion and DSP, all algorithms are not created equal. A corner may have been cut during manufacture to speed things up, or one programmer may have known tricks that another didn't. Sampling-rate and bit-depth conversions, especially, require critical listening. Even the program's method of using dither in bit-depth reduction can make an audible difference.

Directory AssistanceBecause batch processors are a load-'em-up-and-spit-'em-out kind of tool, the key is how easily files can be loaded in and processing can be specified. Although most batch processors offer drag-and-drop support for files, fewer allow you to drop nested directories. In multimedia work, especially, files are often organized into directories containing files in one or more layers of subdirectories. Keeping this structure intact can be vital to the production process, particularly when many files are involved. Some programs, like BarbaBatch, Peak, and TurboMorph, allow you to drop nested structures right onto the program, which then replicates them for the output files. WaveLab won't let you drop a directory structure on it, but a button lets you search and load from such a structure.

If you have files in a directory structure but the batch processor can't go through the structure to load all the files, you have two choices: either navigate the entire structure in a dialog-loading as you go-or move all the files out of the structure into a single, huge bin. This clearly adds more work.

File OutBatch processing is tailor-made for people who have lots of files to modify and convert, but the applications can go much further. If you're creating Web audio or multimedia of any kind and aren't into batch processing, well, get with it. For those writing and recording music, too, there are many benefits. Mellow out all the vocal tracks in a song with a tube-preamp-emulator plug-in, or run a mess of samples through some sonic cement-mixer. Though many people associate batch processors with sampling-rate and bit-depth conversion, the most creative applications have nothing to do with either.

The current crop is powerful enough to do some wonderful things, though there are still rough edges to be smoothed. Still, it's a great feeling to grab a bunch of files, toss them into a batch processor, and do something amazing, or even useful, to all of them in a single pass. It can get to be a habit.

Larry the O provides music and audio services under the name Toys in the Attic. He has used batch processors extensively in his work as a sound designer at LucasArts Entertainment.