Vol. 30 Issue 2 Reviews
SoundHack Spectral Shapers

SoundHack Spectral Shapers, US$ 150 (boxed set), US$ 125 (download), US$ 300 (10-user download license); available from SoundHack, 608 Carla Way, La Jolla, California 92037, USA; electronic mail contact@soundhack.com; Web www.soundhack.com/shapers.php/.

Reviewed by Paul Doornbusch
Melbourne, Australia

Many readers of this journal will be familiar with Tom Erbe’s signal processing software, particularly SoundHack, which for years has been a staple soundfile processing tool for the Macintosh platform. These new Spectral Shapers implement some of the functionality of SoundHack in popular plug-in formats and for real-time use.

SoundHack, for the uninitiated, is a soundfile processor that implements many of the computer music community’s most esoteric processing techniques, such as convolution and cross-synthesis, in a way that most musicians can use. SoundHack has had some 15 years of development and implementation, and as it has concentrated on techniques which commercial software avoids it has very few competitors. The suite of four new real-time plug-ins now on offer implements some of SoundHack’s simpler functions, and one function not found in SoundHack. As computer processing ability increases, Mr. Erbe intends to release more real-time plug-ins based on SoundHack functionality.

The SoundHack Spectral Shaper plug-ins come in the popular VST format for Macintosh OS 9, Macintosh OS X and Windows computers; they also come in Audio Units format for Macintosh OS X. As the bundle name suggests, each of the four plug-ins implements filters for spectral or timbre modification and shaping. +Spectralcompand is a spectral compressor and expander, +Spectralgate is a spectrum-based noise gate, +Binaural is an HRTF (Head Related Transfer Function) filter for positioning sounds at specific locations around the listener’s head, and +Morphfilter holds two filter shapes and allows the user to transform one filter to another.
Installation is trivial: simply unpack the archive and place the plug-ins in the correct folder on your computer. This varies from one operating system to another and clear and accurate instructions are given in the documentation. Important to note for Windows users is that the plug-ins require Apple’s QuickTime 5 (or later) to be installed. The plug-ins can be used for 14 days without registering them. Registration requires the use of a small utility program, Spectral Shapers Unlock, to enter the user’s name and registration code. 

Upon opening any of the plug-ins one cannot help but notice the unique user interface (see Figures 1 to 4), in colors reminiscent of the original iMacs. A graphical area displaying spectrum information dominates each plug-in interface and on +Binaural this space is shared by an LFO (Low Frequency Oscillator) envelope editor. The interface includes a peak program meter display on the right side displaying the output level from the plug-in, and below the graphical display are a number of rotary “knob” controls to adjust the parameters of the filters. There are also a number of toggle buttons between the large graphical display area and the knobs to select such parameters as linear or logarithmic display, stereo linking, resetting controls, and so on. The graphical display shows the input spectrum and the output spectrum, along with the filter shaping function, all updated in real-time.

Figure 1+Spectralgate is a frequency-selective, or spectral, version of the familiar noise-gate/ducker. This plug-in separates the spectrum into 513 bands and uses a threshold parameter to affect the sound in frequency bands either above or below the threshold only. The gate function will eliminate frequency bands below the threshold while the “ducking” function reduces the level of frequency bands above the threshold. The ducking gain reduction is less severe than the gate function. Thus the dynamic level of each band is changed depending on its level. Ducking will work on louder spectral bands, higher than the threshold (a resonance for example), to reduce their level, while gating affects frequency bands below the threshold. +Spectralgate can thus be used to only allow louder frequency bands through, as timbral modification or possibly as noise reduction, depending on the setting. In ducking mode it can be used to tame resonances or louder spectral bands, and allow the quieter parts to be heard more easily.

The controls of +Spectralgate are Threshold, Gain, Attack, Release, Tilt, and Makeupgain. A group of toggle buttons allows the user to select different modes of operation. The Threshold control sets the level at which the gate (or ducker) operates, so the level of each frequency band is continuously compared to the threshold level, which is displayed as a horizontal line in the spectrum window and can be between –96 dB and 0 dB. This threshold line, however, need not be a horizontal line, it can be drawn by hand to a specific shape and it can be generated from any sound by pressing the learn button. In the case of a complex threshold level, the control adjusts the average level. The Gain control adjusts the gain variation, in gating and ducking, when the effect is triggered. This gain variation can be between –60dB and +60dB. The Attack control adjusts how quickly the gate or ducking effect turns on. Conversely, the Release control adjusts how quickly the effect turns off. The Tilt control, unique to this set of plug-ins in my experience, allows the user to generally adjust the shape of the threshold by plus or minus 6dB at the high frequencies. Makeupgain is a level control for the output of the effect, automatically (if the Autogain toggle is active) adjusting for an average of 0 dB change through the effect. The toggle buttons are relatively self-explanatory: they select different modes of operation. Learn will set the threshold level to the spectrum of the currently playing sound, Reset sets the threshold shapes to straight lines, Lin/Log sets the display to show logarithmic or linear frequency, Stereolink applies the same threshold shape to both channels, Peaktrack sets the threshold shape to the peak levels, Gate/Ducking switches between gate and ducking modes, and Autogain will automatically adjust the Makeupgain control to match the output level to the input level.

While all of that may seem impressive, it becomes even more interesting when these parameters are automated. Each of the rotary controls can be automated through MIDI Controller messages. This allows, for example, the threshold to be continuously adjusted over a period of time. Experimenting with this, I was able to slowly transform a recording of scrunched-up aluminum foil to bell-like sounds by slowly increasing the threshold level of the gate and simultaneously increasing the release time. 

Figure 2+Spectralcompand is not unlike +Spectralgate. +Spectralcompand is a spectral-based compressor/expander that also splits the frequency spectrum into 513 bands and operates on each individually. The maximum degree of compression is 5:1, where a five-decibel increase in the input would become a one-decibel increase in the output, and the maximum degree of expansion is 1:5. Unlike some studio tools, which require the user to switch between the two modes, the ratio control allows +Spectralcompand to smoothly move from compression to expansion.

The interface of +Spectralcompand is very similar to +Spectralgate. A graphical window allows the user to set the initially linear threshold level to a complex curve for the levels at which compression or expansion takes place. The Threshold knob sets the level of the linear threshold, or the average level in the case of a more complex shaped threshold. The threshold range is from 0dB to –120dB (enough for 24-bit signals). Two buttons, Learnpeak and Learnaverage, allow the threshold shape to be set to the peak value or average value, respectively, of each frequency band. The Ratio control determines the amount of compression or expansion. Compression reduces the dynamic range by reducing the level above the threshold, while expansion increases the dynamic range by reducing the level below the threshold. A ratio of five to one is available for either process. As with +Spectralgate, Attack and Release controls adjust how quickly the effect turns on and off, between zero and one second. Longer times allow for a smoother sound, but at the expense of responsiveness and it is often best to adjust these parameters as carefully as the threshold. Tilt and Makeupgain controls complete the set of adjustable parameters and these operate as per +Spectralgate. Beyond the Learnpeak and Learnaverage buttons, there are other toggle buttons. The Reset button resets the shape of the threshold to a straight line, the Lin/Log button changes the frequency display between linear and logarithmic modes, a Stereolink button links both channels for equal stereo processing, and an Invert button allows auditioning of the removed signal. Again, the adjustable controls may be automated through MIDI to allow for very complex time variable sound processing.

Dynamic compression and expansion are processes which, being the natural inverse of each other, have very different sonic outputs and applications. One of the obvious applications for spectral expansion in general is as noise reduction. I found +Spectralcompand to be excellent in this application when cleaning up an old recording. Being able to audition the removed signal made it possible to make adjustments to remove as little as possible of the music and juggle the competing demands of removing the noise but leaving the signal - this can be difficult with the pro-audio type of denoising plug-ins. The compression function seems best suited to reshaping the spectrum, and excellent results were achieved with drawing threshold shapes to give the desired spectrum.

Figure 3+Morphfilter is a plug-in that allows you to smoothly transform from one filter to another. The interface for +Morphfilter is similar to that of the previous two plug-ins, with a large spectral display area and lines representing the filter functions or shapes. The only way to create the two filter functions is with the Learn button, deriving the shape from the spectrum of a playing sound or to draw into the window. A Filter Depth control allows the filters to be applied to a variable degree. With a setting of zero on the Filter Depth there is no filtering, at a setting of 1.0 the filter is applied in the expected manner of ±24 dB as it appears in the spectrum window. The range of the Filter Depth control is –2.0 to +2.0 and a setting of 2.0 will apply the filter with extra (double) boost and cut to the range of ±48 dB, while negative values will invert the filter. Filter Number is a control to interpolate between the two filters, with a range between 0.0 and 1.0. When changing filter shapes, a value below 0.5 is affecting the shape of the first filter, while a value greater than 0.5 will affect the shape of the second filter. A Filter LFO control will adjust the frequency of an oscillator to modulate the filter number control, smoothly moving between the two filter shapes, in the range from 0.0 to 10.0 Hz. An LFO Divide control is an integer number to divide the Filter LFO frequency, thereby giving a larger range of Filter LFO values, and potentially create very slow transforms from one to another. The LFO Divide goes up to 11. The other rotary controls are the Tilt and Gain controls, which operate the same as with the other plug-ins of the set. The buttons to control the filter consist of the now familiar Learn, Reset, Lin/Log, Stereolink, and Autogain buttons. An LFO Sync button will synchronize the LFO to the host application’s MIDI clock, if it has one. The automation of the adjustable controls allows for more complex time-variant operation and complex real-time manipulation.

The transformation between two filter sets works very smoothly and well. However, I achieved the most exciting results (for my application) playing with the learn function and then the filter depth. By learning a filter function from part of the sound being played, and then adjusting the depth of the application of that filter, it is possible to transform the spectrum of the sound in complex and unexpected ways. There is an example in the documentation where the filter can be used to decrease the room resonances in a recorded sound, and such processes are near impossible to achieve in any other way. I was able to create some unusual spectral transformations this way with sometimes very unexpected, and impressive, results.

Figure 4+Binaural is a head related transfer function (HRTF) filter for positioning sounds around a listener on headphones. The interface to this plug-in is a little different from the others, with the spectrum and filter function graphical area taken up with a spectral display of the output and an editable LFO envelope display. This filter is limited to horizontal plane positioning only, and also to the 44.1 kHz sampling rate. Future versions will accommodate full 3D spatial positioning, loudspeaker corrections, and other sampling rates. An Angle control can be set to position a sound between –180 and +180 degrees around the listener. A Gain control of +12 dB to –12 dB is also provided in case there is a need for gain adjustment, for example if a sound resonates with the HRTF filter. Buttons select between Filter One and Filter Two, which are different sets of HRTF data. Filter one is the MIT Media Lab set from a KEMAR dummy head microphone system. Filter two is the original SoundHack HRTF filter set that was developed by Durand Begault. There is also an LFO section, with an LFO Position control to set the start point (or phase) of the LFO, an LFO envelope editor, LFO Speed control with a range of –1 to +1 and an LFO Divide control to adjust the LFO frequency, similar to the one in +Morphfilter. The variable controls can be automated through MIDI controllers. 

I found +Binaural to work quite well, for the limited uses I found for it. For listening over headphones, it is an excellent HRTF plug-in, working as well as any generalized HRTF set can. I found the KEMAR HRTF set more useful than the older filter set. It can be thought of as an elaborate pan control. I expect that it will become much more useful when the additions arrive for use over loudspeakers.

The documentation for the SoundHack Spectral Shapers is clear and complete. It quickly gives the users the information they could want, without being too verbose and full of detail that users would already know. The only thing that I think would improve it would be a brief tutorial section for each plug-in, expanding on the “suggested uses” sections for each plug-in.
I tested the plug-ins with a variety of applications, from commercial and free sound editors to Max/MSP. They were always stable and well behaved, despite anything I could think of doing to try to upset them. 

The SoundHack Spectral Shapers is a very powerful and unique set of plug-ins that would find application in anybody’s sonic manipulation toolbox. They seem to be targeted at those wanting more experimental and adventurous results, but that does not mean that they are in any way underdeveloped or unprofessional; they simply implement concepts and algorithms which commercial developers overlook as being too difficult or too narrow. The sound quality of the plug-ins is superb, and the sonic results can be as complex and unique as the user's imagination.