ValhallaFreqEcho AU updated. Less crashy!

I just posted an update of the ValhallaFreqEcho Audio Unit, that should fix some bugs people were encountering with Logic. The plugin assumes stereo-input, stereo-output, but the older version of the AU wasn’t enforcing this. I changed the code so that it can only be instantiated on stereo tracks. I will work on having it run with mono tracks in a future release.

Download the new version of the code here.

ValhallaFreqEcho updated: new controls, VST+AU

I just posted some updates to ValhallaFreqEcho, my free frequency shifter + analog echo plugin. You can download the plugin here. The new stuff:

  • New parameters: Low Cut and High Cut. These control the gain of shelving filters in the feedback path of the echo (the direct and initial echo signal are not filtered). These controls are very useful in getting different type of analog sounding echos, as well as harsher or flubbier echos, plus a variety of strange chaotic oscillations.
  • An Audio Unit version of the plugin is available, in addition to the VST plugins for Windows and OSX.

I’ll be posting some usage tips soon. I have spent a lot of time setting up runaway oscillations with the plugin, using no input (it self-oscillates like the old analog echos). Some very trance-y sounds can be coaxed out of this thing – not the dance music type of trance, but the “staring into space and drooling for awhile” type of trance.

More general reverb tips

As a followup to my Eos tips and tricks post, I thought I’d share some more reverb tips. All of these have been tested with Eos, but should also work with a wide variety of hardware and software reverbs.

  • Set the high cut filters to a fairly low frequency. Older hardware reverbs, such as the EMT250 and Lexicon 224, had a hard cutoff at 8 KHz to 10 KHz, due to the low sampling rate of the machines. The high cut filters in many reverbs have a much more gentle slope than the high order filters used at the inputs of these old boxes. To emulate these old boxes, try setting your high cut filters to a fairly low frequency, such as 2 to 4 KHz. This also corresponds more closely to the absorbtion of high frequencies by air in a large space, such as a concert hall.
  • Use the low cut controls to make the reverb sound less “tubby.” Many concert halls actually have a much longer decay for low frequencies than mid range frequencies. This is useful for classical music, but for most popular music forms, the amount of bass energy that is present will sound flubby when reverberated. Set the low cut controls at 200 to 400 Hz, or even higher, for a clearer reverb sound.
  • If you don’t have low or high cut controls, put the reverb in a send bus, and put the EQ of your choice before or after the reverb.
  • Try compressing the input or output of the reverb, for some neat sounds. A limiter before the reverb will keep spikey transients from dominating the response, and will better emulate the transformer-coupled inputs of the old high-end hardware units. Compressing the output of the reverb will change the exponential decay response to something much weirder, depending on your settings.
  • Plate reverbs have a lot of high frequencies in the decay, so make sure that the high frequency decay multiplier (or the high frequency decay filter cutoff) is set fairly high. These controls are usually separate from the high cut controls, that shape the sound at the input (or output) of the reverb.
  • Adjust your modulation depth based on the decay. For long decays, you may wish to back off on the modulation depth, as the sound will travel through the modulators many more times compared to a short decay. Each pass through the modulators causes more detuning. A modulation depth that works for short decays may sound seasick for long decays. Of course, if that’s your thing, then go for it.
  • Use the Size control for the desired echo density, but be mindful of how it affects the modal density. For example, if you want a small drum room, then set Size to a smaller setting, as it will make the echos closer together. However, a smaller Size setting will sound more metallic for longer decays, as the modal density goes down as the Size decreases. Longer delay lengths = higher modal density = less metallic = lower echo density. For short decays, the low modal density may not matter.
  • The Size control is often given in meters. This has nothing to do with any real physical world metrics, in most cases. A real acoustic space with a 30 meter maximum dimension will have a few orders of magnitude higher modal density than your typical digital reverb with a 30 meter Size setting. Just tune it by ear to where you like it.
  • Shorter Size settings may also result in deeper modulation for the same decay setting, so be sure to retune this for your tastes.

Hope these are useful to people. If you have any more tips, feel free to add them in the comments.

Early examples of modulated reverbs

I have been trying to track down good sonic examples of a modulated reverb in action. Here’s a few that come to mind:

Vangelis, “Creation du Monde,” 1973. This is an interesting example of a home-brewed modulated reverb. Vangelis used 3 Roland Space Echos in series, processing a Hammond organ and Clavinet, to get the huge spacey sounds in this track. The old Space Echos (and other tape echos) tended to have a fair amount of wow and flutter, due to imperfections in the tape, slipping and sticking of the capstan, and so on. By applying feedback in a single tape echo, the result is a modulated echo sound, where the amount of modulation increases with each passthrough of the system. Run three of these in series, and the result is a LOT of pitch modulation.


Harold Budd and Brian Eno. “First Light,” 1980. The modulation of the EMT250 can be clearly heard on this track from “The Plateaux of Mirror.”


Jeff Buckley, “Hallelujah,” 1994. Buckley’s guitar is being run through an Alesis Quadraverb, which has several really nice modulated reverb options available (and a lot of noise, at least on my Quadraverb). The vocals sound like a modulated reverb, but I am unsure of which unit – a high end Lexicon seems likely.

I know that there are a lot more, but I am kind of forgetful today. Any suggestions welcome.

Modulation in reverbs: reality and unreality

The use of modulation in digital reverbs dates back to the first commercial digital reverberators. The EMT250 used an enormous amount of modulation, to the point where it sounded like a chorus unit. Lexicon’s 224 reverberator incorporated what they called “chorus” into the algorithms, working along principles not dissimilar to the string ensembles in use at the time. The Ursa Major Space Station was based around an unstable feedback arrangement, that relied upon randomization to achieve longer decay times without self-oscillating.

Recently, Barry Blesser has written about randomization in his book, “Spaces Speak: Are You Listening?” Blesser argues that thermal variations in most real-world acoustic spaces results in small variations of the speed of sound within those spaces. Multiply this by several orders of reflections, and the result is an acoustic space that is naturally time varying. Blesser goes on to argue that random time variation in algorithmic reverbs emulates the realities of an acoustic space more accurately than time-invariant convolution reverbs.

Blesser makes a convincing argument, but I am not convinced that the heavy amounts of delay modulation used in the older reverbs makes for a more “realistic” space. The randomization in the older algorithms does a nice job in masking the periodic artifacts that can be found when using a small amount of delay memory. However, the depth of modulation used in the old units goes far beyond what can be heard in any “real world” acoustic space. The thermal currents in a symphony hall will result in a slight spread of frequencies as the sound decays, but will not create the extreme chorusing and detuning found in the EMT250, or in the Lexicon algorithms with high levels of Chorus.

Having said that, I would argue that the strengths of algorithmic reverbs is not in emulating “real” acoustic spaces, but in creating new acoustic spaces that never existed before. Blesser recently said that the marketing angle of the EMT250 was to reproduce the sound of a concert hall, but later describes the EMT250 in terms of a “pure effect world.” The early digital reverbs, in the hands of sonic innovators such as Brian Eno and Daniel Lanois, were quickly put towards the goal of generating an unreal ambience, where sounds hang in space, slowly evolving and modulating. Listen to Brian Eno’s work with Harold Budd, on “The Plateaux of Mirror,” to hear the long ambiences and heavy chorusing of the EMT250 in action. A later generation of ambient artists made heavy use of the modulated reverb algorithms in such boxes as the Alesis Quadraverb to create sheets of sound, that bear little resemblance to any acoustic space found on earth.

Creating these washy, chorused, “spacey” reverbs has been a pursuit of mine since 1999. My early Csound work explored relatively simple feedback delay networks, with randomly modulated delay lengths, in order to achieve huge reverb decays that turn any input signal into “spectral plasma” (a term lifted from Christopher Moore, the Ursa Major reverb designer). With my more recent work, I have tried to strike a balance between realistic reverberation, and the unrealistic sounds of the early digital units. The plate algorithms in Eos are an attempt to emulate the natural exponential decay of a metal plate, but were also inspired by my understanding of the EMT250. The Superhall algorithm in Eos was not attempting to emulate any “natural” space, but rather the classic early digital hall algorithms, with heavy randomization, nonlinear build of the initial reverberation decay, and the possibility of obtaining near infinite decays. The “real” world continues to be a source of inspriation for my algorithms, but I find myself more attracted to the unreal side.

Eos tips and tricks

Eos has been out for a month and a half now, and the reception seems pretty positive. I thought I would share some tricks that came up during the development of the algorithms, as well as some more recent ideas.

  • Gated reverb. The Attack control in Superhall allows you to approximate a gated reverb sounds Set Attack to around 50, Decay to a low value (<1 second), Diffusion to 100, and play around with Size to get the gate time. If the sound is too grainy, turn up Decay a little higher.
  • Reverse reverb. Same settings as above, but set Attack closer to zero.
  • “Shape.” The late 80’s Lexicon reverbs had “Shape” and “Spread” controls to control the initial onset of reverb energy, with high Shape settings resulting in a reverb that fades in slowly. The Superhall Attack control has a similar function, in that the first few hundred milliseconds can have an exponential decay (for high settings of Attack), a relatively flat response (Attack=50) or fade in slowly (Attack=0).
  • Using an external chorus to simulate the EMT-250. I recently heard sound examples of the EMT-250, and that thing had TONS of modulation. In Eos, the Superhall algorithm can get similar levels of modulation right out of the box, but the plate algorithms have a somewhat drier sound for the first few hundred milliseconds. By running a decent chorus or ensemble plugin in front of Eos, and using the Plate 1 or Plate 2 algorithms, you can get a sound that is closer to the EMT-250 (the Plate algorithms are closer in concept to the EMT-250 than Superhall). Set the Low Crossover and High Crossover frequencies at 1000 Hz, set the Size to 30 meters, Mod Freq to 0.5 Hz or so, and Mod Depth at max, and then tweak your chorus until the initial sound is as “wet” as you like. Obviously, this works better on a bus send. The internal modulation of Eos will give you spreading sidebands as the sound decays, that you just can’t get out of a convolution reverb.
  • Ethereal vocals. Use Plate 1 or Plate 2, set the Low Cut frequency to a fairly high value (800 Hz to 1200+ Hz), and the High Cut frequency to a similarly high value (8000 Hz or higher). Set the mix to a fairly subtle level. The fundamental frequencies of the vocals will not be reverberated to a great extent, but the syllabants and consonants will have a fair amount of reverb. This type of sound can be heard all over Simon and Garfunkel albums – I’m not sure if this was due to the 7-story staircase reverb chamber at Columbia studios, or over enunciation of consonants, but it is definitely a good sound for those choirboy things.
  • Emulating older reverbs by backing off on the diffusion. The Superhall algorithm took some of its sonic inspiration from the Lexicon Concert Hall algorithms, but Superhall can have a much higher initial echo density. By turning the Diffusion parameter down to 50% or so, the more “spacious” or “grainy” sound of the older algorithms can be achieved.
  • Longer reverb time. In your host’s default parameter view, move the Low Crossover to a high frequency (>8000 Hz), and set the Low Multiplier to 2.0. This should increase your maximum Decay time to 20 seconds.

If you have any Eos tricks that you would like to share, feel free to post them in the comments.

Eos is released

After 10+ years in this business, my first commercial plugin work has been released. Eos is an algorithmic reverb, available in VST and AU format for OS X and PC.

I developed the three reverb algorithms used in this product, under contract to the good folks at Audio Damage. The AD guys spec’d out the algorithms, and designed the GUI and all the interface code, while I contributed the DSP.

Go take a listen. Today is a good day.

Schroeder Reverbs: the forgotten algorithm

I am a bit of a reverberation algorithm fanatic. For 10+ years now, I have read every paper I can find on reverb design, and have listened to every hardware and software reverb I can lay my hands on. I have created literally hundreds of reverberation algorithms during that time. Most of them sucked. Some of them are pretty good.

As a reverb snob, I have tended to avoid working with the algorithms that people refer to as “Schroeder Reverbs.” Generally speaking, these refer to 4 or more parallel comb filters (delay lines with feedback) of unequal length, with the outputs summed and run through two or more allpass delays. There are many published examples of such reverbs, and most of them sound pretty bad: ringing, metallic, etc. Even the famous Freeverb algorithm has these qualities, at least to my ears.

However, the “Schroeder” reverb as it is commonly known is only one of several reverberator algorithms that were disclosed by Manfred Schroeder in his early papers. In his seminal 1962 AES Paper, “Natural Sounding Artificial Reverberation,” Schroeder describes 2 algorithms:

  • The parallel comb filters into series allpasses, as described above.
  • Series allpass delays. Schroeder describes a reverberator using 5 allpass delays in series. This type of reverberator can have a less-colored sound than the parallel comb filters / series allpass approach. However, the amplitude response can become very “Gaussian,” and the allpasses can still display a metallic sound.

Schroeder describes a way of mixing the input and output of the series allpass reverberator, in such a way that the resulting sound is allpass. The algorithm consists of a single delay line, feeding into 5 series allpass delays, with allpass feedforward/feedback around the whole structure:

Schroeder acknowledges that such a reverberator would have a non-exponential decay. What Schroeder does not seem to recognize in his paper is that this is a fundamentally different algorithm than the simple series allpass reverb. By turning the “wet” gain up, the coefficient of the outer allpass is increased, which will result in an echo density that increases with time, as well as a longer reverb time.

Why is this important? The reason this is notable is that real rooms and acoustic spaces have an echo density that increases with time, while the parallel combs and series allpass reverberators have a constant echo density. By placing the allpasses in a feedback path, a much more natural reverberation decay is created. Schroeder’s paper is the first description of a nested allpass delay that I have found in the literature. The idea of putting allpasses inside of delayed feedback loops is fundamental to the algorithms of Lexicon, Alesis, and other high end reverberator manufacturers, and is still used to this day.

I have implemented the Schroeder nested allpass reverberation algorithm before, and it sounds surprisingly good. People have looked at Schroeder’s claims of “natural sounding reverberation” with skepticism, and attributed it to how long it took to render the sound in 1962, the type of material being reverberated, and so on. Undoubtedly it was difficult to audition the sound under such circumstances, but I am now of the belief that Schroeder was using the nested allpass reverberator in his experiments, and might have been getting better results than what he is commonly credited with.

Auto-Tune, autocorrelation, and seismic analysis

As Auto-Tune is making its way into everything nowadays, public awareness of the process is rising. The recent Time article about Auto-Tune and its creator is a good read, but it oversimplifies the principles behind the algorithm.

In the article, Andy Hildebrand’s background in seismic analysis is viewed as the key to his later work with pitch correction. Hildebrand apparently used autocorrelation for seismic mapping, which is viewed as the key to his later success with Auto-Tune:

He was debating the next chapter of his life at a dinner party when a guest challenged him to invent a box that would allow her to sing in tune. After he tinkered with autocorrelation for a few months, Auto-Tune was born in late 1996.

What the article fails to mention is that autocorrelation has been used for pitch detection since at least the 1970’s. Rabiner and Schafer’s book “Digital Processing of Speech Signals” describes the process in detail, and it was published in 1978. Eventide pitch shifters used autocorrelation starting in the 1980’s, to peform their splicing detection and pitch correction.

In addition, the basic pitch shifting method used by Hildebrant was described by Keith Lent in a Computer Music Journal article in 1989. The idea is to chop up the vocal signal into small windowed grains, where each grain holds a single period of the input signal, and then to spit the grains out at a rate corresponding to the new pitch. This can be viewed as a form of pitch synchonous granular synthesis, where both the grains and the grain rate are determined by analysis of an incoming signal. Lent’s technique has been used by most of the formant preserving pitch shifters, including algorithms from IVL, Digitech and Eventide. The technique was independently developed by France Telecom, and is often referred to as PSOLA (Pitch Synchronous Overlap and Add).

The key to Hildebrand’s innovation is how he combined Lent’s pitch shifting method with the robust pitch detection that autocorrelation provides. Lent’s original paper used a simple time-domain method for determining the input periodicity, which resulted in audible distortion for certain input signals. I have written Lent-style pitch shifters before, and the pitch detection algorithm is critical in avoiding octave jumps, unnaturally hoarse voices, or metallic syllabants. My code had all of those problems, although my boss at the time was able to fix many of the issues. Hildebrant’s patent describes how he uses sample rate reduction and some clever mathematical tricks to create a robust pitch detector that runs much faster than standard autocorrelation.

So, if you are watching The Backyardigans, and the overly pitch corrected vocals drive you crazy, don’t just blame Andy Hildebrand – blame Keith Lent.

EDIT, 2016: OK, I was wrong. Andy Hildebrand contacted me via email with the following, that is reprinted with his permission:

No, I don’t use the Lent algorithm: way too imprecise. You are close on
the detection algorithm. The math in the patent is absolutely precise
to what I do. But that math is used continuously to track pitch as
well. I always know exactly what the pitch is. I run a simple rate
rate converter from that point and when I have to repeat a cycle
(going sharper) or delete a cycle (going flatter) I can because I know
exactly what the period is at every instant.

Apologies to Andy Hildebrand for the misinformation about the Lent algorithm, and for misspelling his name as “Hildebrant.”