Reverb Research
I spent today researching various reverb techniques. The main methods i looked into were:
- Schroeders Reverberator
- Moorers extension of Schroeders Reverberator
- Feedback Delay Networks
- Convolusion Reverb
Schroeder proposed using parallel comb filters in series with all pass filters. This reverb apparently has a slightly metallic sound, but seems quite computationally efficient. One of his well known reverberator designs is shown below in fig 1.

Moorer spent some time looking into Schroeders design and proposed using second order comb filters coupled with allpass filters. An implementation of this I came across used a low pass filter in the feeback loop of 6 parallel feedback comb filters. However, this doesnt seem to give much of an advantage tone wise over the computationally less expensive Schroeder reverberator outlined above.
Feedback delay reverbs are a lot more complicated that the algorithms described above, but also sound a lot more realistic. They were first described by Michael Gerzon in 1971 and 1972 (though Puckette/Stautner and Jot(whos reverberator simulates early reflections and late reverberation) tend to get the credit for the concept). The idea here is to split up the input signal into n delay lines of different lengths and the feedback gain g is replaced by a feedback matrix. An example of this is shown below.
Fig 2 – 3rd Order Feedback Delay Network (JOS)
This feedback delay network was designed by Julius Orion Smith III (JOS) of Stanford University.This guy really knows the score when it comes to this stuff. Check out some of his papers here. Anyway, Im not sure implementing a feedback delay network in matlab would be worth the hassle, as they are obviously very computationly expensive and, taking into consideration that we are aiming this system at beginners, i think a FDN might just be overkill.
Convolution reverb involes having an impulse response and just convoling an input signal with the impulse response. This, by all accounts, sounds awesome. The major drawback here is the lack of flexibility, as you are limited by the number of sampled impluse responses you have available to you. Also, this is again quite computationally expensive. This mad chap is doing good things with convolution reverb. His name is Fokke van Sanne, a dutch engineer who has spent what seems to be quite a lot of time firing starter guns in vaiorus settings and then using Altiverb software to remove the sound of the gunshot and create a sample of the sound of the space. This is your impulse reponse. Once you have this, you can convolve any input sample with it and it sounds like it was recorded in that space. Heres a picture of him firing a starter gun into his mouth –
Its pretty neat, but a little overboard for this project I feel.
Anyway, at the minute it looks like I will be implementing either a Moorer or Schroeder style reverb for this system. I found quite a good paper about implementing reverb algorithms in Matlab (check it here) , so im off to read that to see exactly how hard this is going to be…