Reverberation, or reverb for short, is the pattern of echoes heard when sounds play in a reflective environment. It is a vital aspect of audio spatialisation and immersion.
This chapter pays special attention to directional and 3D reverb and real-time glitchless parameter changes, rarely discussed but of paramount importance for simulations and enhanced reality. It deals with moving sound sources and moving walls. It discusses four ways to implement reverb, with special reference to interpreting and tweaking the parameters that typical reverb units expose. It says what to expect of a good interactive reverb, finding suitable code and the pros and cons of making your own versus using built-in platform-optimised units.
The chapter notes ways to reduce reverb update overhead and avoid performance spikes, contrasting actual reverb unit configurations in mass-market games. It covers the I3DL2 standard and Ambisonic 3D reverb, generation and interpretation of early and late reflections, virtual emitters, reflection lines, snow and forest filtering, reverb distance cues, spatialised and directional reverberation, decorrelation for envelopment, buffering and memory bandwidth, cache considerations and architectural optimisations.
As well as commonplace Schroeder-Moorer systems epitomised by Freeverb, the chapter compares feedback delay networks, all pass loop reverbs and impulse-response convolution, including information about where to get free 3D impulse data and how to edit spatial properties on the fly.
Several elements like the one above are combined in an all-pass loop reverb, one of several synthetic reverb topologies discussed in this chapter.