When we hear a sound in a room, we hear both the sound source and reflections of the sound mixed with it. We call this mixture of reflected sound reverberation. Sounds that lack reverberation will usually sound dull and lifeless and even a small amount of reverberation can liven the sound and make it more appealing to the ear. In addition, we can use reverberation to simulate the sound of a large room, even when listening to the sounds in a small room or on headphones.
Reverberation is simple in principle but potentially complex to implement. In principle, reverberation is accomplished by delaying the samples, adjusting the amplitude of the delayed samples, and then mixing them with the current sample. However, in a real room sounds are being continuously reflected and mixed together from many surfaces similar to what is shown in below.
Both the size of the room and the type of surfaces in the room affect the sound. Different surfaces reflect different amounts of sound and also act as filters that remove or heighten some frequencies. Furthermore, a reflected sound does not simply bounce once and quit. It continues to reflect off different surfaces until the energy in the sound dissipates. What we actually hear is a sound that dies out over a period of time, potentially several seconds, along an exponential decay curve. The amount of time it takes for the sound to drop below the level of audibility (about 60dB reduction) is the reverberation time. The amount of time it takes for reflections to reach the listener varies with the size of room, but in general is around 5ms in a smaller room and up to 0.2 seconds in a large auditorium. The total reverberation time varies between 1/2 seconds up to 3-4 seconds, with 1 to 1-1/2 seconds typical of an auditorium.
We can model a reflected sound with a delay line, amplitude control and optional filter. But to truly simulate reverberation would require modeling potentially thousands of reflections, each with its delay line or tap, filter, and amplitude control. A practical digital reverb has to get by with only a few samples of delayed sound. Nevertheless, those few delayed samples can get close to the same effect we hear in a real enclosure.
We can get a good simulation of room reverberation by combining several resonant delay lines together. Each delay line has a different delay time, producing a complex set of "echos" at the output. In general, it is best to make the delay times relative primes.
The reverberation explorer is a utility program that implements the delay network shown above. You can interactively set the delay times and levels to hear how it affects the sound.
Download the Reverberation Explorer...