If you were making music with a Macintosh in the 1990s, chances are SoundHack was an important part of your sound-mangling toolbox. It's an exceptionally rich and powerful tool, and it was one of the first attempts to make some of the esoteric "computer music" techniques being developed in studios and labs around the world available on a home computer. After more than a decade of development, SoundHack may be showing its age, but creator Tom Erbe hasn't stopped dreaming up strange and wonderful ways to manipulate sounds. Tom's a very busy guy — in addition to writing lots of software, he's also an ace contemporary music recordist (Bob Ashley, Chris Brown), a professor at CalArts, and co-director of The Center for Experiments in Art, Information, and Technology (CEAIT) — but he was kind enough to spend an afternoon gabbing about software, records and the joys of discovering new sounds.
Let's talk about SoundHack. First of all what's up with your versioning scheme? It's at what, .888888?
The current version, I think, is .892. You look at software marketing, where they feel sort of compelled to release a new version every year. SoundHack is never going to reach completion, so at 1.0, the software will be complete — and it's never going to reach that point.
The features have kind of stabilized at this point.
At a certain point I reached so many lines of source code that it just got too big to add anything else. And also the structure of the software got a bit out of date.
So it's not like you're adding new wings to the SoundHack mansion.
No, there were a couple things that told me it was time to stop doing SoundHack. First of all, it has this very simple architecture. It's just a filter that takes things in and sends them out. So it's a simple architecture, which is kind of nice, but I thought if I were to develop more I'd really want to make it possible to do much more than that. Like I'd want to give it some sort of patchable structure, maybe like MAX. I think there's still a place for non- realtime processing, but at that point I thought this should really be something more modular.
Also the fact that if you wanted control over time you'd have to do it via a file, which is a remnant of a time when that was your only option.
Right, it was designed with the ideas of the early '90s. It reached a point where it was sort of pointless to keep going in that direction. You know, I could have just kept adding more and more sound processing types to that, but I thought, 'That's it for that.'
Let's talk about the various functions in SoundHack. What's in there?
There's the binaural filter, which is a method of using filters that emulate your ears and allow you to place monaural sounds at any angle around your head. Spectral dynamics is a process which takes the sound apart and then applies dynamics processing on each band separately, so as each band passes the threshold it has its own response to the compressor, expander, noise gate or ducker.
It's kind of like having the output of a bank of bandpass filters hooked into your board and tweaking each one.
It's an FFT, so it gives you up to 8192 bandpass filters that are then fed into 8192 dynamics processors, and then reassembled with the inverse FFT. Now, convolution is a method of multiplying two spectra together to get a new sound, which emphasizes the things that the two original sounds have in common. So it's as if one sound resonates through another sound. Like singing into a piano. One of the sounds could be the impulse response of a room. You pop a balloon in a room and you get the impulse response recorded and then you can use that impulse response in convolution, you can send one sound through that room response and get the sound of the sound in the room. That's how people most use convolution now, as a reverb.
That's a pretty easy way to think of it, as a reverb or room simulator. But then you can move on to other sounds, like the duck playing through the banjo.
If you walk into a room and you clap your hands and you hear a duck quack, and then you play instruments in that room, that duck quack room, then you have a little different reverb. At that point you should probably stop thinking of it as a reverb.
There's the mutation functions in SoundHack.
The mutation functions are something Larry Polansky and I experimented with. It's a set of algorithms for taking two sounds and selectively combining the two sounds' spectral components to make a new sound, a lot of which have randomness built into them. The mutation functions were more just trying many different ways of doing the combinations and seeing if any of them have interesting spectral effects. The spectral extraction is not really my idea. I was talking to Zack Settel, who had developed some Max patches that did spectral extraction. It's a way of looking at the speed of phase change in each one of the harmonics in the sound and isolating the quickly changing phases from the slow moving phases. The idea was if the phase is slowly moving, it usually was a harmonic that was a steady state sound, and if it was a quickly moving phase it was probably a transient sound or even noise, which would appear as sort of randomly modulated phase on a harmonic. And so you looked at how fast phase was changing and you separated it into two sounds, based on the speed of change.
So ideally you end up with the steady state part of the sound in one file and the transient or moving part in another.
Yeah. And then I also put something completely non- spectral in SoundHack, and that's the varispeed function. I just liked the sound of radical varispeed.
The varispeed function has that window where you can draw...
It gives you a window to draw a varispeed curve, and you can get some very radical changes that way. There's also the phase vocoder, which does time and pitch stretching. With time stretching, it produces more output frames than it has input frames. Or, rather, it spaces the output frames farther apart than the input frames.
So the result is a longer sound.
Yes. The trick with the phase vocoder is that for each frequency band, it does a phase adjustment that is such that if you're doubling the length of the file, you double the phase difference. A lot of people know this trick now. It allows you to do time stretches that are huge. Of course at a certain point, you get a lot of phase distortion. But one of the nice things about the phase vocoder is that the distortion itself is another nice sound.
You can also do pitch shifting.
The pitch shifting simply changes the frequency of all the bands when doing resynthesis. So it splits up the sound into many bands, and then it uses that amplitude and phase information to control a band of oscillators. We just shift the pitch up or down.
Pitch and time are independent.
Yeah. There are lots of phase vocoders out there now. SoundHack still has its unique sound, and that's why we like different pieces of software. They all have their own distortion.
SoundHack has popped up in a lot of interesting places. There are a lot of film soundtracks that use SoundHack, right?
Yes. In The Matrix, whenever they did the slow motion sounds, Dane Davis used SoundHack to do the slowdown. Also, Bruno Degazio worked on the IMAX film about the Titanic, and he took the sounds of waves and the sounds of screaming and convolved them together to get some good Titanic underwater effects.
You're about to release VST plug-ins. What led you in that direction?
Because they're realtime, and because it's easy to build good GUIs [Graphic User Interfaces] for them. I think it's really important for a piece of music software to be usable. Having a lot of knobs that are easy to tweak is a good thing.
Your new plug-ins are about as different as they could be from SoundHack, because they've got these beautiful interfaces that are very stripped down and really easy to play with.
Oh yeah. I'm a much better programmer now!
So it's all modular now?
Yes. I have focused on one type of spectral processing at a time. I decided that I'll make a plug-in for every sort of variant idea I have with spectral processing. So I made a spectral gate where I kept adding and removing features until I felt that every knob on the spectral gate did something dramatic to the sound.
I imagine a lot of people don't really know what "spectral processing" means.
That's probably true. You use this algorithm called the FFT, the Fast Fourier Transform, which is like many, many bandpass filters. You take, say, a thousand bandpass filters, and you divide your sound by frequency. Now you can do separate operations on each one of the components. So you could, say, apply a certain amount of compression to the sound on some frequencies, but not others. Or you could take all these components and combine them with the components of another sound somehow. Maybe take the average of them, maybe multiply them together, maybe look for similarities between them and put out what's the same or what's different.
Are all the innards of SoundHack in the plug-ins?
No. These do run in realtime, and there is a huge difference. You can tweak things in realtime, and get to sounds much faster. The other thing is that, with the new interface, you can draw thresholds on the screen. I put a lot more things in the plug-ins than there are in SoundHack. In SoundHack there's a spectral dynamics processor, so I broke that into two plug-ins, one that does expanding and compression and another that does gating and ducking. And for each of those, I've tried to put as much in the algorithm as possible. I've learned a lot more about compression and I've put that knowledge into the spectral compander plug-in. I've also learned a lot more about the FFT and the various drawbacks and problems that can happen, but also about the interesting sounds that can happen.
Will you do Window releases?
Yeah, they work under Windows, OS9 and OSX.
It seems like having plug-ins will be especially useful when working in the spectral domain, particularly convolution or mutation.
What I really want to do next is cross-synthesis plug-ins. Now that it's live, you can find the zone where two sounds interact. It's always unexpected how two sounds are going to interact. So having it live it'll be much more interesting. A good example is convolution, where you do an FFT and separate the sound into all its frequency components, and then you multiply that with another sound's frequency components, and what happens is it tends to reinforce similarities, but kills off any dissimilarities. So it's like the sounds are resonating through each other. But it does it on such a very frequency-specific level and you never really know how two sounds are going to resonate. It's hard to know how a duck is going to quack through a banjo.
You were always great at making those examples!
You try it out and the duck quacks through the banjo and you go, "Oh yeah, it sounds like that!" Doingit in realtime, I think, is going to be much easier.
Because there were a thousand other iterations where it didn't sound like anything.
Yeah, there were a thousand times where a duck quacking through a banjo isn't interesting at all. But if you tweak the knob just right, you'll find that duck-banjo sweet spot.
In 2017, one of my best friends, Craig Alvin [Tape Op#137], kept texting me about a record he was engineering. He was saying how amazing the process was, and how awesome the results were. The album turned out to be Kacey Musgraves'