There are a variety of approaches to synthesizing the effect of a reverberant space. Approaches based on direct measurement of a particular room response (convolution techniques) tend to be less extensible and computationally expensive, though possible using special purpose hardware. The use of three-dimensional physical modeling techniques is also limited by computational requirements. Most current work in simulating reverberation is based on ``physically- and perceptually-informed'' techniques that seek to create parametrically-controllable systems. These models can produce very good reverberant responses though they cannot reproduce actual room reflection characteristics in an exact sense.
The simulation of room reverberation ideally involves two transfer functions per sound source per listener (one for each ear). The tranfer functions or filter representations will change if anything in the room changes.
Transfer function approach to reverberation simulation for three sources and one listener.
For the three source, one listener setup depicted in Fig. 9, the output signals would be computed via six convolutions:
where hij[n] is an FIR filter representation of the impulse response from source j to ear i and Mij is the length of the filter.
For impulse responses of one second (appropriate when the t60 = 1 second) and a sample rate fs = 50 kHz, each filter would require 50,000 multiplies and additions per sample or 2.5 billion multiply-adds per second. For three sources and two listening points (ears), this corresponds to 30 billion operations per second.
In addition to being very computationally demanding, this approach requires new filter representations whenever the room setup changes. In general, it is difficult to implement a flexible reverberation control scheme using convolution-based approaches.
A ``distributed'' physical modeling approach to a reverberant space would allow for dynamic modifications of listener and source positions during an acoustic simulation.
However, a brute force acoustic simulation of a room response using three-dimensional physical modeling techniques would require nearly 150 million ``mesh'' grid points to simulate a room of only 4 x 4 x 3 meters at a sample rate of 50 kHz.
In addition, current three-dimensional modeling techniques are plagued by dispersion errors that would limit the quality of this approach. It is possible to use warping techniques to minimize the dispersion errors but this would significantly increase the already prohibitive computational burden.
Early reflections, within the first 100 milliseconds or so, are typically implemented using tapped delay lines (suggested by Schroeder (1970) and implemented by Moorer (1979)).
Early reverberation implemented with a tapped delay line, followed by a late reverberation processing block.
Early reflections should be calculated for a given geometry and spatialized.
The delay-line tap outputs should be scaled in proportion to propagation distance.
Most room surfaces are not perfectly flat, resulting in diffuse scattering. Thus, attempts to exactly reproduce the response of a given room via techniques such as ray tracing are generally unsuccessful.
Moorer's ideal late reverb: exponentially decaying white noise. But it would be better to say exponentially decaying ``colored'' noise, since the high-frequency energy should decay faster than the low-frequency energy.
Schroeder (1962) suggested the use of parallel comb filters and cascaded allpass filters to synthesize reverberation.
Cascaded Schroeder allpass sections.
Allpass filters produce frequency-dependent time shifts, which help diffuse the sound. For this reason, Schroeder allpass sections are sometimes referred to as impulse expanders or impulse diffusers.
The gain values are typically set around g = 0.7. The delay-line lengths Mi should be mutually prime and span successive orders of magnitude.
Impulse response of three cascaded Schroeder allpass sections (g = 0.7 and Mi = [113, 337, 1051]).
The impulse response, calculated with the Matlab script allpass.m, of three cascaded Schroeder allpass sections is shown in Fig. 12.
The feedback comb filters provide coloration and the delay-line lengths are set to mutually prime values.
The JCRev reverberator from CCRMA (based on Schroeder/Moorer).
The STK classes PRCRev, JCRev, and NRev implement Schroeder reverberators of various complexities. In particular:
PRCRev implements two series allpass units and two parallel comb filters.
JCRev implements three series allpass units, four parallel comb filters, and two decorrelation delay lines in parallel at the output.
NRev implements six parallel comb filters, three series allpass units, a lowpass filter, another allpass filter in series, followed by two allpass filters in parallel at the output.