Reverberation in the context of the Doom engine is a software simulation of the natural phenomenon of sound reflections and soft echoes with respect to the parameters of the environment in which a listener, usually the player, is located. Reverberation was first added to the Doom engine by Williams Entertainment programmer Aaron Seeler in the port of Doom and Doom II to the Sony PlayStation, which supports the feature in hardware via its Sound Processor Unit (SPU). Support was continued in this code base in Final Doom for the same console, and for Doom 64 on the Nintendo 64. In the PlayStation ports, reverberation qualities are determined on a per-sector basis by a new field in the map format.
Source port support
Reverberation and sound environment properties are also supported by several source ports:
|Eternity Engine||Software reverb engine based on the public domain Freeverb implementation|
|ZDoom||Software and hardware EAX support via FMOD or OpenAL [notes 1]|
- Includes most descendent ports such as GZDoom.
Both the Eternity Engine and ZDoom-based ports use a largely compatible system for sound environment specification. A sound environment object (DoomEd number 9048) which takes an environment definition ID in its first map argument is placed in a given sector to create the origin of the environment. This environment will be expanded during level loading into all neighboring sectors to the greatest extent possible by crossing two-sided lines, stopping at any "sound environment boundary" linedefs, which are determined through linedef flags.