Reverbs: Diffusion, allpass delays, and metallic artifacts

One of the most common controls found in reverberation algorithms is the Diffusion control. This is usually described as increasing the echo density, either the initial echo density (for Lexicon algorithms) or the rate at which echo density builds over time. The manual for the Lexicon LXP-15 has a somewhat typical description of the Diffusion parameter:

Diffusion: Controls the degree to which initial echo density increases over time. High settings of Diffusion result in high initial buildup of echo density; low settings cause low initial buildup. Echo density is affected by Size — smaller spaces will sound denser. To enhance percussion, use high settings of Diffusion. For clearer and more natural vocals, mixes and piano music, use low or moderate Diffusion settings.

If you read a lot of manuals for reverb products, you will often see similar descriptions of the Diffusion control, as well as the recommendation to use lower settings of Diffusion for clearer vocals. But why is this? A real room or hall tends to start with very high levels of diffusion, due to the objects typically found in the space – chairs, furniture, intricate wall patterns, etc. It would seem that a given echo density should be a characteristic of the space, not of the signal being sent into that space.

The answer lies in the signal processing tricks used to generate the initial high echo density. Manfred Schroeder, in his seminal 1962 AES paper “Natural Sounding Artificial Reverberation,” discusses using very short feedback delay lines in series to increase the echo density. Schroeder developed a very clever feedback/feedforward trick, such that the resulting delay line has a “flat” frequency response. The resulting delay unit is referred to as an allpass delay:

In the late 1970’s, James Moorer published an optimized version of the allpass delay, which used less multiplies, and is more commonly used today:

The earliest commercial digital reverbs, such as the EMT-250 and Lexicon 224, made use of several series allpasses at the inputs of the reverberation algorithms to increase the echo density. Lexicon was the first company to allow the user to directly control the coefficients of the input allpasses, and labeled this the “Diffusion” control.  The practice quickly spread through the audio industry.

EDIT: Chuck Zwicky, in a comment to this post, points out that the Diffusion parameter wasn’t originally present in the Lexicon 224, but was introduced with the Version 4.0 software. He also points out that most of the successful early reverberators up to 1984 did not have adjustable diffusion. The Eventide SP2016 had adjustable diffusion for some of their reverb algorithms, but this would have been around the 1984 to 1985 time frame.

The problem with generating echo density through series allpass delays stems from the definition of “allpass.” An allpass system will pass all frequencies with equal amplitude, over time. There is no guarantee when a given frequency will make its way out of the allpass delay. In practice, allpass delays don’t sound flat. Much like comb filters, a short impulsive sound sent through an allpass delay will result in a “ringing” sound, where only certain frequencies are resonating. Run an impulsive signal through several short allpass delays in series, and the result is a metallic decaying sound.

For percussive instruments, the metallic coloration might be an acceptable tradeoff, versus the “chattering” sound that occurs when the initial echo density is too low. Plus, snare drums have a metallic coloration in their own right, so a bit more coloration is OK. For vocals, the coloration produced by short allpass delays can be very unpleasant. Even though vocals are usually perceived as a “smooth” or continuous signal, the actual waveform produced by the glottis is very pulse-like, and can cause short series allpasses to ring out. This is especially audible on male vocals.

Some of the possible solutions to the issues with series allpasses:

  • Embrace the metallic coloration, use a bunch of series allpasses, and call the resulting algorithm a plate reverb. This is a fairly common approach, with most of the “plate” algorithms having very little to do with a physical plate, so much as having a lot of initial echo density and a somewhat metallic sound.
  • Use fewer series allpasses at the input. This works in eliminating coloration, but can result in a lower initial echo density. Many “hall” algorithms use this trick.
  • Use a larger number of series allpasses, with the idea being that the larger number of resonances will end up smearing out the metallic sound. This works, but a side effect of cascading a larger number of series allpasses is that the attack time can be extended to the point where the sound seems to “fade in.” This is a great sound if you like it, but doesn’t work for small room simulation.
  • Modulate the delay lengths within the allpasses. For longer allpasses, this helps reduce coloration. For the short allpasses used in the input diffusion section, this ends up producing too audible of a chorusing sound, or a sound similar to water sloshing around in a metal pan.
  • Reduce the coefficients of the allpass delays. This will reduce coloration, but will also reduce the echo density.

This is where the Diffusion control comes in. Instead of being a compromise solution that works OK for all signals and not great for any signal, it allows the user to adjust the algorithm to suit the input signal. It places the burden of balancing echo density and coloration on the end user, instead of on the algorithm designer. By knowing how the Diffusion control works, the end user can make their reverbs work better for them.

Is this an ideal solution? Probably not. But in the limited hardware processors of the late 1970’s, or the low-CPU plugins of today, it can be a reasonably effective solution.

EDIT #2: ValhallaRoom uses some clever signal processing tricks to avoid the issues associated with series allpass delays described above. A high level explanation of the Early Reverb section of ValhallaRoom can be found here. Even though ValhallaRoom has a Diffusion control, it is not being used to control allpass coefficients – the Early Reverb has no allpasses in it.

EDIT#3: ValhallaShimmer is built around a large number of cascaded, modulated allpass delays, and the artifacts that are generated by such a structure (see this blog post for more details). In addition, many of the “classic” digital reverbs relied heavily on series allpasses, so it isn’t to say that they produce a sound that is unusable – just that this sound isn’t necessarily reflective of what is found in a “real” acoustic space.

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.