Now that Mac users are well ensconced in the post-Sound Designer era, the once-moribund marketplace for stereo audio-editing software is finally showing

Now that Mac users are well ensconced in the post-Sound Designer era, the once-moribund marketplace for stereo audio-editing software is finally showing new signs of life. MicroMat, for instance, has staked out the low-end, under-$50 territory with its surprisingly capable SoundMaker, and BIAS's Peak 2.0 has matured into a well-designed powerhouse for pro-level users. (For a detailed survey of 2-track audio-editing programs, see "Shaping Better Waveforms" in the March 1999 issue of EM.) Furthermore, several Mac-based digital audio sequencers now offer in-depth audio-editing capabilities, heaping more pressure on developers of stand-alone editing software.

Into this highly competitive environment, TC Works has introduced its new Spark digital audio editor. With a price tag of just under $500, this program is clearly aimed at serious professional-level users. According to TC Works' promotional material, Spark is the "ultimate integrated audio-editing and mastering solution for Mac OS" and is intended for sound design, editing, and mastering.

As we'll see, the program is not the all-encompassing editing solution one would expect from the marketing claims. Its greatest strengths lie in its powerful and versatile processing and mastering tools rather than in detailed waveform-editing and post-production features. Indeed, when judged as a mastering and processing program, this newcomer is off to a pretty good start, offering numerous real-time features; ASIO and Digidesign Direct I/O drivers; CD burning; and support for VST plug-ins, a variety of sampler formats, and 24-bit, 96 kHz audio. In short, Spark's collection of high-quality plug-ins, combined with its unique real-time processing environment, lets you do some very cool things.

HERE'S LOOKING AT YOUSpark is a great-looking program, with nicely drawn 3-D controls and tastefully designed graphics. For the most part, the program works smoothly and intuitively and seems admirably resistant to crashing. That's pretty impressive for a first release.

When you first launch Spark, you see the large Browser View main window and a floating Transport palette that contains lifelike transport controls and an elapsed time display (see Fig. 1). If the Transport palette gets in your way, you can always hide it and use menu commands or key combinations to operate the program; Spark provides a substantial number of key combinations for navigating, performing tasks, and editing files.

The Browser View is divided into three components: the Wave Editor in the lower half of the window provides a standard waveform display; the File View in the upper left shows a familiar hierarchical file tree; and the Playlist in the upper right contains a list of selected regions. This all-in-one-window interface design lets the user see, in a single display, the elements that TC Works feels are most often used during editing. Indeed, sound designers and sound-effects editors will appreciate the File View section when it comes to locating, adding, and organizing files. And having the Playlist directly above the Wave Editor is handy if you spend most of your time preparing files for CD mastering.

Whenever you select and save a region in the waveform (by choosing Create Region), it instantly appears in the File View, where the relationship between the region and the parent audio file is graphically delineated. You can then drag any region's icon from the File View into the Playlist.

Although the Browser View appears to be a single window, its three components are not all fully active simultaneously. When you click in one of the displays, a thin blue line appears around its border to indicate that it is the currently active section. The remaining sections are then at least partially disabled. For example, if you listen to a recording with the Wave Editor active and then click in the File View, playback continues unabated. But if you click in an empty Playlist instead, playback stops immediately. That takes some getting used to.

You can drag the horizontal border between the upper and lower halves of the window to add real estate to the lists or to the waveform, but you can't completely eliminate any of the three components. In a like manner, you can drag the vertical divider between the File View and Playlist to reveal more information in one section at the expense of the other.

This emphasis on border dragging makes the window rather awkward to reconfigure. For example, if you want to maximize your view of a long Playlist, you may have to intrude on the File View section and shrink much of the Waveform Editor. That involves dragging two separate borders. If you later want to do some close-up editing on the waveform, you'll probably have to drag the horizontal border again. If you lose track of a file or region and want a large view of the file tree, you may have to drag the borders yet again. I'd rather have separate windows that I could bring to the front or minimize with a single mouse-click.

Also, if you want to view all of the columns in the Playlist, you'll probably have to do some scrolling; I couldn't open the section wide enough on my 19-inch monitor to see all of the columns at once-the presence of the File View prevents maximizing the Playlist width-and Spark doesn't let you rearrange columns or delete unnecessary ones to conserve space.

CAPTURING SOUNDRecording in Spark is relatively simple and straightforward: clicking the Record button in the Transport palette opens a Recording dialog box with an excellent set of dedicated peak-hold meters and a second set of transport controls (see Fig. 2). You can set the meters to display the input level, the level after a plug-in, or the level that is recorded to the file. What's more, the Recording dialog box allows you to keep adding takes into the same file by automatically creating a new region for each take. You can even apply any two plug-ins during recording. To top it off, the program can detect the incoming audio's sampling rate and convert to the target rate on the fly.

Spark can read and write several file formats, including AIFF, WAV, and Sound Designer II. It can import and export Sound Designer playlists and can export its own playlists to Adaptec Toast (included with Spark) or Jam for CD burning. All settings-track ID, crossfades, emphasis, and so on-are saved with the image file, so you can simply click Jam's Write Disc button and let it burn.

Spark supports QuickTime; you can import a movie and edit its soundtrack as you view the movie in a dedicated QuickTime window. The Transport palette's jog/shuttle wheel effectively scrubs both audio and video together. The program also imports any file type supported by QuickTime, including MP3 (decoding only).

The program's support for a wide range of samplers is noteworthy. It can transfer samples to and from the Akai S1000, S2000, and S3000; E-mu ESI and E4 series; Kurzweil K2000 and K2500; Roland S760; Yamaha A3000; and any sampler that supports the MIDI Sample Dump Standard or the SMDI protocol. In addition, Spark reads Akai samples directly from CD-ROM and automatically splits interleaved stereo files during transmission.

For converting large numbers of files into various formats, Spark provides a Batch Converter window that is adequate for most tasks but is not especially feature laden. Batch-processing options let you save files in AIFF, WAV, or Sound Designer II format with resolutions of 8, 16, or 24 bits and sampling rates from 8 to 96 kHz. You can also dither, normalize, and correct DC offset during conversion. Unfortunately, you can't apply any plug-ins or other effects-so you can't, for example, prepare a bunch of sound effects for a Web page by converting them to 8-bit audio and running them all through a bandpass filter in one operation.

MAKING WAVESMost editing activities revolve around the Wave Editor, which provides a typical waveform display along with an overview. Selecting an area in the overview instantly fills the lower display with the selected area. That offers a great way to quickly zoom in on part of an audio file; simply select a narrow slice of the waveform in the overview, and that section is spread out across the main display.

Spark has separate vertical and horizontal zoom controls in the lower right corner of the Wave Editor. A small arrowhead, wedged between the two sets of controls, provides a drop-down menu of zoom options, so you can skip directly to another level rather than step through the levels one at a time. You can also change the zoom levels in the Zoom Factor field at the bottom of the window, where neighboring fields supply information about the currently selected region. During playback, you can watch the cursor scroll through the waveform, or you can have the cursor remain centered as the waveform scrolls along behind it-a very cool feature.

The File View section is nicely integrated with the Wave Editor: clicking on a region in the File View highlights the corresponding area in the waveform display. That makes it easy to locate and audition regions-even from different audio files-before editing, processing, or dragging them into the Playlist.

Spark's drag-and-drop capabilities are quite helpful when you're handling files or regions in the Browser View window. In addition to dragging regions from the File View into the Playlist, you can drag files directly from the Desktop or from other windows and drop them into the File View to add them to a project. If you drag a region from the File View onto the Desktop, it becomes a separate file with its own icon.

MISSING IN ACTIONIn studying the program, it quickly becomes apparent that TC Works has lavished its attention primarily on Spark's impressive real-time audio-processing and stereo-mastering abilities (more on this shortly). Missing from the current version are several waveform-editing tools that many users expect in a high-end audio editor.

Aside from the usual Cut, Copy, and Paste commands, for example, Spark's Edit menu offers only a Silence and Trim command for modifying waveforms. In fact, the Edit menu isn't even mentioned in the documentation. The Process menu adds several more powerful commands, but most are surprisingly minimalist. The Fade command, for example, provides three fade-in and three fade-out shapes, but no user-definable envelopes (with a graph and grab handles) for custom fades. Other commands include Reverse, Invert, DC Removal, and Change Gain. The Normalize command is an all-or-nothing proposition; you can't, for instance, normalize to 90 percent of maximum. That's a disadvantage if you plan to do more processing after normalizing.

The Pitch Shifting command lets you adjust the pitch in cents over a +/-5-semitone range. But the best command in the group is Time Stretching, which allows you to specify a destination length in samples, time, or tempo in a range from 125 percent to 75 percent of the original. Time Stretching produces excellent results, especially with dialog, which it handles smoothly and usually without noticeable artifacts. The results with music are also quite good.

The Wave Editor lacks a Crossfade command, making it difficult to smoothly splice together pieces of audio material. Spark's only Crossfade function resides in the Playlist section, which performs nondestructive real-time crossfades between Playlist entries. Double-clicking an entry in the Playlist opens a dialog box where you can specify a hard cut, overlapping cut, or one of five crossfade types. As with the Fade command in the Wave Editor, however, the Playlist's Crossfade function offers no user-definable envelopes.

The Wave Editor's Marker implementation is quite limited. You can add a Marker to the waveform during playback, during recording, or when playback is stopped, and each Marker appears as a vertical line with a small red diamond on top. That's about it. You can't label the Markers; you can't even number them. There is no Marker window to display a list of the Markers and their positions. You can reposition a Marker by dragging its diamond, but Markers serve little functional purpose in locating, editing, identifying, or looping material.

Although Spark supports a long list of samplers, the program offers virtually no looping tools. You can select a region and loop it during playback, and you can adjust the boundaries of the looped area. But you can't get a close-up view of the loop point, and there are no fine-tuning controls for making precise adjustments to create a smooth transition.

If you spend most of your time performing microsurgery on waveforms, you'll soon become frustrated by Spark's lack of some features. The program lets you zoom in to get a fairly close view of a waveform, but not to the single-sample level. And once you arrive, there is little that you can do; Spark has no pencil tool for redrawing waveforms, no blending command for smoothing edits, no zero-crossing function to optimize splices, and no click-removal feature for eliminating pops and crackles. Surprisingly, the program offers only a single-level Undo command instead of multiple Undo with an edit history list, so you can't back up to an earlier state if things don't turn out as expected. On the other hand, Spark works with temporary files, so if you have a crash, you don't lose your work.

Finally, if you do post-production work, you'll likely be dismayed by Spark's lack of SMPTE time-code support. You can't, for example, trigger a series of playlist entries (sound effects, narration clips, or music cues) at specific hit points on a video workprint. Nor can you trigger an audio file at a specific SMPTE time. You can't even display SMPTE time.

REAL-TIME FUNIf your interests lie in the direction of processing and mastering audio, Spark offers exciting and unique possibilities. With its 32-bit floating-point engine, Spark can perform an impressive array of real-time processes. This aspect of the program is what makes Spark so special.

The Transport palette is a great place to start having fun. A wonderfully realistic multifunction jog/shuttle wheel lets you scrub audio back and forth (during playback or pause) from half to double speed. If you click the TS button, the wheel becomes a real-time time-stretch control, allowing you to change the playback speed up or down by as much as 25 percent without changing the pitch. You can actually hear the speed change smoothly as you drag the mouse. This is a great way to try different amounts of time compression or expansion before using the Time Stretch command in the Wave Editor to make permanent offline changes. If you click the adjoining VS button, the wheel becomes a varispeed control that smoothly changes speed and pitch from 50 to 200 percent of the original.

Spark's other impressive real-time tricks include on-the-fly resampling and dithering-which means, for example, that you can play a 24-bit, 96 kHz audio file at 16-bit resolution and 44.1 kHz sampling rate without first converting the file. It also means that you can play a mixture of files (including mono and stereo files) from the File View, each at a different sampling rate, without having to convert them in advance. A red display lights up on the left side of the Transport palette when real-time resampling is active.

PLUG-INS APLENTYSpark's real-time capabilities are greatly expanded by its support of VST plug-ins, which can also be used for offline processing. You can even route your incoming audio through a group of plug-ins and send the audio directly to the outputs without recording anything. That turns your computer into a giant real-time multi-effects processor.

The program includes a varied collection of 11 VST plug-ins, which you can also use in other VST-compatible programs such as Steinberg Cubase VST. That's a nice bonus. With one exception, all of Spark's plug-ins share a common appearance, with 3-D platinum-look "front panels" and an assortment of horizontal sliders (see Fig. 3). Spark also includes a Preview button for offline editing, which allows you to hear changes as you fiddle with the sliders. The responsive real-time controls and the intuitive interface designs encourage experimentation and often produce serendipitous results. Each plug-in also comes with several presets to get you started.

Many of the plug-ins are filters. The CutFilter plug-in provides two switchable high-cut or low-cut filters with adjustable cutoff frequencies. BandPass is a single-band filter with a 6-, 12-, or 24-dB/octave slope. The plug-in collection also includes a single-band and 3-band parametric EQ.

The most interesting of the filter plug-ins is ResFilter, which is a handy tool for sound designers. To use ResFilter, you select a filter type (lowpass or highpass), adjust the Resonance control, and choose one of three slopes (the same as in BandPass). The filter is controlled by an envelope follower with adjustable depth, attack speed, and decay time. You can also add distortion with a Drive slider. Creating bizarre, extraterrestrial sounds is a breeze with ResFilter, and mangling sections of dialog is endlessly entertaining.

If you're looking for an easy way to add harmonic distortion to a recording, the simple FuzzSat plug-in might be the ticket. It provides only two sliders: one to adjust the Drive parameter and another to adjust high-frequency damping.

Spark's Grainalizer is another great tool for sound designers, and it's one of my favorites. If you enjoy creating an infinite variety of wacky robot sounds and other weird effects, this is the tool to use. You can detune the left and right channels over a 4-octave range or modulate the signal in a range of 1 to 300 bpm. Other faders add grunge and variable distortion, and if you want a little more bite in your sound, you can switch from the Vanilla to Fudge setting. The Grainalizer is lots of fun to play with, and it may be just the thing for game producers and sound-effects developers.

The Reverb plug-in (which uses the same algorithm as TC Works' Native Reverb) is easy to use yet versatile enough for most situations. It provides sliders for In, Out, and Mix levels, along with a slider for decay time and a slider for selecting among more than a dozen preset room sizes. Spark's Add Tails option (which also appears alongside the other plug-ins during offline editing) is especially noteworthy. It automatically inserts additional time at the end of the processed sound to allow the reverb tail to decay naturally without getting cut off. Overall, the Reverb plug-in produces some excellent effects, from subtle small-room reflections to deep, rich cathedral reverbs that fade smoothly and cleanly without breaking up. The real-time controls make it easy to fine-tune the reverb to the situation.

The relatively simple Delay plug-in offers some very useful features. For example, you can set the left and right channel delay times independently (in milliseconds or bpm) to produce great special effects. A Tape Echo section enables you to mimic an old tape delay. An Expander plug-in helps reduce unwanted noise.

Spark also comes with TC Works' powerful TC Native CL compressor/limiter (see Fig. 4). This plug-in has a larger, more elaborate interface than the others and includes separate sets of Threshold, Attack, and Release controls for the compressor and limiter sections (along with a Ratio control for the compressor). Above the controls, a histogram displays the "level distribution" of the audio signal, and a bar graph shows the amount of signal reduction. These displays are helpful for assessing how much processing is taking place.

On the left side of the front panel, separate input and output meters and faders are provided, and a set of A/B buttons allows you to quickly compare two different configurations. The compressor and limiter also include separate Auto MakeUp switches that return the output of the sections to a 0 dB maximum after processing. The compressor offers a Soft/Hard-Knee option.

Finally, if you're interested in seriously expanding your audio-processing abilities, you'll be pleased to know that Spark now supports Cycling 74's Pluggo software and its open-ended collection of VST plug-ins. (For a review of Pluggo, see the October 1999 issue of EM.)

FLEXIBLE EFFECTSMuch of Spark's powerful processing and mastering functions are controlled from the Master View window (see Fig. 5). This window is composed of two parts: the Master section for monitoring and adjusting output levels, and the FX Machine for processing with plug-ins.

The Master section provides a set of long-throw faders with accompanying tricolor peak-hold meters and clip indicators. You can disable the peak-hold function entirely, or you can set it to infinite hold or 6-second hold. The same options are available for the clip indicators. A Dry button lets you bypass the FX Machine section to monitor the unprocessed sound, and a second button allows you to activate the real-time dithering function. Dithering options include 24, 20, 16, and 8 bit.

The right side of the Master View window is dedicated to Spark's FX Machine, a powerful yet intuitive real-time effects-routing matrix. The FX Machine can accommodate as many as four parallel audio streams (derived from a mono or stereo file), with up to five plug-ins per stream. Furthermore, you can split or merge the streams and copy any plug-in to multiple locations. The processing possibilities are truly mind-boggling.

For example, you can use a filter plug-in to divide the signal into four frequency bands, then process the bands separately with a compressor to accomplish frequency-based compression. But that's just one application; you can also process an audio file with two stereo streams, each starting with the Grainalizer. The top stream could pass through the Reverb, while the bottom stream bypasses it. The audio with reverb could then pass through ResFilter while the dry audio enters the Delay plug-in. Finally, you could process both streams with EQ before summing them at the output. This is a fairly simple example with only two streams; things can easily get much more complex. The key is that you can do all of this in real time, experimenting with different settings as you go along.

Even if you don't use all 20 plug-in slots (when was the last time you needed 20 plug-ins cranking at the same time?), the FX Machine's flexible matrix design makes it easy to experiment with multiple effects. After you add a plug-in to one of the slots, you can drag it to another slot. Double-clicking a slot opens its plug-in so you can change settings at any time. The program's Automatic Wiring feature connects the plug-ins' inputs and outputs to the FX Machine so you don't have to draw the connections. You can also save FX Machine configurations as presets or in banks of eight.

With multiple streams passing through different plug-ins, the phase relations between the left and right channels can quickly get out of whack. (Relatively small phase discrepancies induced by some effects begin to add up when using large numbers of plug-ins.) To address this situation, the Master section includes an unusual multicolor Correlation meter that indicates the phase relationship between the channels. The Correlation meter can provide you with valuable information on such issues as mono compatibility and seriously out-of-phase signals. Furthermore, by turning individual plug-ins on and off, you can use the Correlation meter to isolate a particularly bad offender.

In addition, the colorful segmented border around each slot is more than just decoration. It's actually a small set of input meters for each plug-in, so you can keep track of the plug-in levels as you accumulate effects. A CPU meter in the upper right corner lets you know how much processing power is being used, and an Overload indicator warns you if you have loaded more plug-ins than your computer can handle. Keep in mind that few if any CPUs can handle a full load of plug-ins without triggering the Overload warning. On my 300 MHz Mac G3, for instance, I can load "only" about ten plug-ins without triggering a warning. (Some plug-ins require more processing than others, so your limits may vary.)

GIVE AND TAKEWhether or not Spark is the program for you depends mainly on the nature of your audio-editing work. This program is not a one-stop solution for sound design or post-production, and if you spend most of your time fixing and tweaking waveforms at the molecular level, Spark's modest editing toolkit will probably disappoint you. However, the program's strengths could nevertheless endear it to sound designers, who often are accustomed to using more than one program to accomplish their goals.

If your work focuses on CD mastering or effects processing, Spark is an excellent choice. Especially noteworthy are its FX Machine section, high-quality plug-ins, and other real-time nooks and crannies. So if combining real-time effects is your cup of tea, Spark might truly ignite your creativity.

Associate Editor David Rubin lives and works in the Los Angeles area.