Blog / Sound Design

"The 1962 Algorithm Behind Every Algorithmic Reverb You've Ever Used"

Photo by Marc-Olivier Jodoin on Unsplash

In 1962, Bell Labs researcher Manfred Schroeder published a paper in the Journal of the Audio Engineering Society titled "Natural Sounding Artificial Reverberation." His goal was modest: replace expensive and unreliable spring and plate reverbs with a purely digital system that could run on the mainframes of the era. What he built sounded metallic and artificial. And it became the blueprint for every algorithmic reverb ever made.

The Problem Schroeder Was Solving

Real room reverberation has two properties that are hard to fake. First, it has a flat frequency response over time — no particular frequency decays faster or rings longer than another (in an ideal space). Second, it has high echo density — more than 1000 distinct reflections per second, closely spaced enough that the ear hears them as smooth decay rather than separate echoes. Fewer than that and you get flutter: an audible granularity in the tail that sounds nothing like a room.

Previous approaches — single delay lines, spring tanks — failed on both counts. Springs have wildly uneven frequency response. Single delays produce obvious repeating echoes.

Schroeder's insight was to combine two filter types: feedback comb filters for sustain and density, and allpass filters for diffusion without adding coloration.

The Original Architecture

A feedback comb filter is a delay line with its output fed back to its input through a gain coefficient g < 1. The name "comb" comes from its frequency response: peaks spaced at intervals of 1/delay_time, like the teeth of a comb. With a 30ms delay and a gain of 0.7, you get a decaying series of echoes with a characteristic spectral shape.

Schroeder's reverberator runs four to six of these comb filters in parallel, each with a different delay time. The outputs are summed. The idea: if the "teeth" of each comb are at different frequencies, their combined response evens out into something flatter. Individual combs color the sound — combined, they partially cancel each other's colorations.

After the parallel combs, the signal passes through two series allpass filters. An allpass filter passes all frequencies at equal amplitude (flat magnitude response) but delays different frequencies by different amounts (non-flat phase). In theory, it adds density without adding tone. In practice — more on that below.

Schroeder's specific delay times were chosen to be incommensurate: no delay divides evenly into another. The goal was to prevent the echoes from different filters aligning periodically, which would recreate the flutter he was trying to avoid.

Why It Sounds Metallic

The Schroeder reverb sounds bad. This is almost universally acknowledged, including by Sean Costello (creator of the Valhalla reverbs), who called it "the forgotten algorithm" — forgotten because the industry moved past it quickly.

Two failure modes:

1. Comb filter resonance. While several parallel combs produce a flatter response than one, "flatter" is not "flat." The residual spectral irregularities still cause certain frequencies to ring and sustain more than others. This is audible as a metallic, pitched quality — particularly on percussive material where the tail has clearly different tonality than the source.

2. Allpass coloration. Schroeder allpass filters are theoretically colorless, but this only holds when their delay times are very short — below about 10ms. At longer delays (needed for adequate density), an allpass filter behaves acoustically like a feedback comb filter and develops its own tonal resonances. The "colorless" claim breaks down exactly when you need the density most.

The fundamental issue: with the number of filters Schroeder could afford to run in 1962, echo density was about 800 reflections per second — below his own stated threshold of 1000. The tail sounds grainy.

Gerzon, Stautner, and the Feedback Matrix

In 1971, Michael Gerzon — the same Gerzon behind Ambisonics — published a short note in Studio Sound proposing a different approach. Instead of running comb filters independently in parallel, what if their outputs were cross-coupled through a matrix?

In Gerzon's design, N delay lines feed into an N×N matrix, and the matrix outputs feed back into the delay line inputs. This creates a system where every delay line hears some signal from every other delay line on each cycle. The result is much richer feedback behavior — echo density grows over time, exactly as in real acoustic spaces.

Gerzon's paper was published in the UK and almost unknown in the US. In 1982, John Stautner and Miller Puckette independently rediscovered the concept and published a paper introducing the Feedback Delay Network (FDN) to a wider audience. For stability (the reverb must decay, not grow), the feedback matrix must be unitary — a matrix where multiplying by it doesn't change signal energy. A Hadamard matrix or a householder reflection are common choices.

The critical difference from Schroeder: in an FDN, echo density grows geometrically with each feedback cycle. After a short initial transient, the response becomes genuinely diffuse — thousands of overlapping echoes per second — without requiring thousands of individual delay lines.

Jean-Marc Jot and Frequency-Dependent Decay

The remaining problem with basic FDNs: real rooms don't have flat decay. High frequencies die away faster than low frequencies (air absorption, material reflections). A reverb with perfectly flat decay sounds artificial in a different way — too evenly distributed.

In the early 1990s, Jean-Marc Jot at IRCAM developed a framework for FDNs with frequency-dependent reverberation time. The technique: replace the scalar gain in each feedback path with a simple filter — typically a shelving EQ or a one-pole lowpass. This filter applies a different gain per frequency band, so highs decay faster than lows, mimicking real acoustic behavior.

Jot also showed how to independently control two perceptual parameters: the timbre of the reverb (determined by the early reflections and the spectral shape of the feedback filters) and the decay time (controlled by the feedback gains). This decoupling is why modern algorithmic reverbs have a "character" knob and a "time" knob that don't completely interact — that's Jot's architecture.

What's Running Inside Your Reverb Plugin

Virtually every algorithmic reverb since the mid-1990s is some variant of an FDN with frequency-dependent feedback:

  • Lexicon PCM series: Early commercial implementation. Uses a combination of parallel allpass diffusers followed by a cross-coupled delay network.
  • Valhalla Room: Sean Costello's implementation uses multiple FDN-based algorithms with carefully tuned delay times and modulated feedback for movement and diffusion.
  • Eventide Space / Blackhole: FDN structures pushed into physically impossible configurations — feedback gains above 1.0, delay times that grow over time.
  • Convolution reverbs (Altiverb, Space Designer): Not algorithmic at all — they're doing partitioned convolution with real impulse responses. A completely different approach, covered in a previous article.

The practical insight for sound designers: understanding this architecture explains several behaviors that otherwise seem mysterious.

Why pitch-shifting a reverb tail can sound "algorithmic": Modulating the delay line lengths (as many reverbs do for shimmer effects) pitch-shifts the recirculating signal. The cross-coupling of an FDN then distributes that pitch-shifted signal through the entire network — you get the shimmer effect "for free" by just modulating delay times.

Why some reverbs have a "color" that's hard to EQ out: That's the feedback filter's spectral shape in the loop. The filter is typically a shelving EQ, and its pole frequencies determine what the reverb "sounds like" independent of the input. EQing after the reverb changes the overall color but not the internal resonances.

Why "diffusion" knobs exist: They control early allpass stages before the main FDN. Higher diffusion = more initial blurring of transients. Lower diffusion = you can hear individual early reflections as distinct taps.

The Algorithmic Core

In stripped-down pseudocode, a 4-line FDN looks like:

for each sample:
    inputs = x(n) + A * outputs           // matrix feedback + dry input
    outputs = delay(inputs, [d1, d2, d3, d4]) // four delay lines
    y(n) = sum(outputs)                   // mix to mono output

Where A is a 4×4 unitary matrix, d1..d4 are delay lengths in samples (incommensurate), and each delay() includes a shelving filter in the feedback path. That's it. That's most of the reverb.

Schroeder's 1962 design turned out to be a dead end — but it defined exactly the right questions. What's the minimum echo density for a convincing tail? How do you avoid spectral coloration in a feedback loop? How do you independently control timbre and decay? Every algorithmic reverb since has been an answer to those questions.

The fact that the best reverb in your signal chain is probably running a variation of an idea from 1971 — implemented in C++, scheduled in real-time, running on a chip with transistors smaller than a virus — is one of the more satisfying facts in audio engineering.