FDN reverb

A quite different approach to reverb design is the Feedback Delay Network. The algorithm consist of a several parallel delay lines with a feedback matrix, so the output of each delay line may be routed individually (possibly inverted) and fed back to other delay lines. It was originally proposed by Gerzon in 1971, later developed further in the 80’s and 90’s with contributions from M.Puckette. J.O.Smith, J.M.Jot and others. The following figure from J.O. Smith shows the general idea:

FDN diagram from J.O.Smith

Continuously varying the delay times can create a timbrally rich reverb tail with the FDN architecture. An implementation of this variant can be found as the “reverbsc” opcode in Csound. It was first implemented by Sean Costello based on a J.O.Smith paper (1985). Diagrammatically it looks like this:

Diagram for the FDN screverb in Csound

The delay times are chosen to be prime numbers, but they are also continuously and randomly modulated, so varying delay time ratios will occur. The lowpass filter in the feedback loop allows high frequencies to naturally decay faster than other frequencies, and there is a hipass filter at the output to provide what is commonly termed LF rolloff in commercial reverb engines.


Input sound 1: Short burst of white noise

Input sound 2: A short guitar phrase

Noise burst with FDN reverb, medium reverb time

Guitar with FDN reverb, medium reverb time

Noise burst with FDN reverb, long reverb time

Guitar with FDN reverb, long reverb time

With an exaggeration of the delay time modulation, the reverb may get a varying degree of chorus. A small amount of this effect may be desirable to smooth out the reverb tail, too much may create unwanted pitch modulation.


Noise burst with highly pitchmodulated FDN reverb, long reverb time

Guitar with highly pitchmodulated FDN reverb, long reverb time

Stereo versions of this reverb can have several variations, one is simply to copy the architecture for each channel, keeping the signals separate. Another variation is to cross-feed some of the delay lines between channels. Øyvind Brandtsegg (2003) has also used this technique to create multichannel reverbs, creating one instance of the architecture for every output channel, cross-feeding a different subsets of the delay lines to different neighboring channels. This allows the reverb to spread quite naturally from speaker to speaker in a room.

There are also variations on the FDN, for example the Zita-Rev1 by Fons Adriaensen, using an allpass/comb section within the feedback loop, for an even smoother reverb tail.