Historic Reverberators — User Guide
Compare three landmark artificial-reverberation designs — Schroeder 1962, Moorer 1979 and Gardner 1992 — using historical reference presets alongside clearly identified AudioTools extensions.
What this does
Historic Reverberators processes one selected Sound through one of three historically important artificial-reverberation designs. The point is not simply to offer three reverb “flavours,” but to make three different generations of reverberator architecture directly comparable on the same source.
Schroeder 1962 uses parallel feedback comb filters followed by series allpasses. Moorer 1979 adds an explicit early-response FIR and frequency-dependent decay inside the comb feedback loops. Gardner 1992 uses three distinct small/medium/large diffuse-reverberator structures built from cascaded and nested allpasses inside a filtered feedback loop.
The three topologies
| Topology | Core structure | Reference behavior in this script |
|---|---|---|
| Schroeder 1962 | Parallel feedback comb bank → series allpass chain | Architecture-faithful. Classic uses four conventional delays spanning 29.7–43.7 ms, two allpasses around 5 and 1.7 ms with g = 0.7, and no damping. Feedback gain is derived from the requested RT60. |
| Moorer 1979 | Early-response FIR → six low-pass feedback combs → allpass, with the early response also mixed to the output | Classic uses Moorer’s six published delays, per-comb one-pole coefficients, preferred 19-tap early response and 6 ms / 0.7 allpass. The early FIR feeds the late network according to Figure 12. |
| Gardner 1992 | Three separate diffuse-reverberator networks using cascaded, nested and double-nested allpasses in filtered feedback loops | Small, Medium and Large are separate Figure 4.11 structures with their published delays, allpass gains, feedback low-pass cutoffs and output-tap weights. Only the RT-to-feedback gain is solved numerically because Gardner does not publish that mapping as a numerical table. |
Quick start
- Select exactly one Sound object.
- Run
Historic_Reverberators.praat. - Choose Schroeder 1962, Moorer 1979 or Gardner 1992.
- For a historical comparison, start with Schroeder / Classic, Moorer / Classic, and Gardner Small, Medium or Large. Gardner Classic is a convenience alias for the published Medium structure.
- Use Custom or the non-reference Small/Medium/Large presets under Schroeder and Moorer when you want creative variants rather than the reference configuration.
- Open Advanced settings for decay, predelay, stereo spread, tail, output format and topology-specific controls.
- Run the processor. The Info window reports realized parameters, reference status, wet calibration and measured decay; the optional visualization shows the impulse response and active topology.
Output name: <source>_Schroeder_<preset>, <source>_Moorer_<preset> or <source>_Gardner_<preset>.
Presets
The same five preset names appear for each topology, but their historical status is not the same. The tables below distinguish reference configurations from AudioTools extensions.
Schroeder 1962
| Preset | RT60 | Wet | Network | Damping | Predelay | Status |
|---|---|---|---|---|---|---|
| Custom | Form value | Form value | 4 combs, 29.7–43.7 ms; 2 allpasses, g 0.70 | 0.30 | 12 ms | User-defined extension |
| Classic | 1.90 s | 40% | 4 combs, 29.7 / 37.1 / 41.1 / 43.7 ms family; 2 allpasses, g 0.70 | 0 | 0 ms | Historical architecture + conventional later delay set |
| Small | 0.55 s | 22% | 4 combs, 13.5–22.0 ms; 2 allpasses | 0.42 | 6 ms | AudioTools extension |
| Medium | 2.10 s | 38% | 6 combs, 32–58 ms; 3 allpasses | 0.34 | 22 ms | AudioTools extension |
| Large | 5.50 s | 52% | 8 combs, 45–92 ms; 3 allpasses, g 0.75 | 0.20 | 45 ms | AudioTools extension |
Moorer 1979
| Preset | RT60 | Wet | Late network | Early response | Predelay | Status |
|---|---|---|---|---|---|---|
| Custom | Form value | Form value | 6 combs, 50–78 ms; one-pole damping 0.36; 1 allpass | 18 parametric taps, 8–80 ms, level 0.70 | 12 ms | User-defined extension |
| Classic | 2.00 s | 40% | Published 50 / 56 / 61 / 68 / 72 / 78 ms combs with Table 2 per-comb coefficients; 6 ms / 0.70 allpass | Published 19-tap Table 3, 0–79.7 ms, level 1.0 | 0 ms | Reference preset |
| Small | 0.70 s | 25% | 6 combs, 22–38 ms; damping 0.50; 1 allpass | 12 parametric taps, 4–34 ms, level 0.80 | 4 ms | AudioTools extension |
| Medium | 2.20 s | 38% | 6 combs, 50–78 ms; damping 0.40; 1 allpass | 18 parametric taps, 8–80 ms, level 0.70 | 15 ms | AudioTools extension |
| Large | 4.50 s | 50% | 6 combs, 68–104 ms; damping 0.26; 2 allpasses, g 0.72 | 22 parametric taps, 12–130 ms, level 0.60 | 32 ms | AudioTools extension |
Gardner 1992
| Preset | RT60 | Wet | Selected structure | Feedback LPF | Status |
|---|---|---|---|---|---|
| Custom | Form value | Form value | Small for RT ≤ 0.57 s; Medium for 0.58–1.29 s; Large for RT ≥ 1.30 s | 4.2 / 2.5 / 2.6 kHz by room class | Published structure selected from user RT; AudioTools gain calibration and default predelay/spread |
| Classic | 1.00 s | 35% | Published Medium structure | 2.5 kHz | Convenience alias |
| Small | 0.48 s | 25% | Published Small structure | 4.2 kHz | Figure 4.11 reference network |
| Medium | 0.95 s | 35% | Published Medium structure | 2.5 kHz | Figure 4.11 reference network |
| Large | 2.60 s | 45% | Published Large structure | 2.6 kHz | Figure 4.11 reference network |
Moorer Classic reference data
Classic uses the published six-comb delay set and one-pole coefficients. Moorer provides coefficient values for 25 kHz and 50 kHz operation; the script linearly interpolates between those endpoints for intermediate sample rates, uses the 25 kHz endpoint below 25 kHz and the 50 kHz endpoint above 50 kHz.
| Comb | Delay | g1 at 25 kHz | g1 at 50 kHz |
|---|---|---|---|
| C1 | 50 ms | 0.24 | 0.46 |
| C2 | 56 ms | 0.26 | 0.48 |
| C3 | 61 ms | 0.28 | 0.50 |
| C4 | 68 ms | 0.29 | 0.52 |
| C5 | 72 ms | 0.30 | 0.53 |
| C6 | 78 ms | 0.32 | 0.55 |
The preferred 19-tap early response is also reproduced before sample quantization:
For Classic, the late comb/allpass branch is fed from the early-response signal and delayed so its first contribution reaches the end of the early-reflection cluster. The final Moorer wet signal then combines that late field with the early response.
Gardner Figure 4.11 reference networks
Gardner’s Small, Medium and Large reverberators are different networks, not one network scaled by a room-size parameter. The script follows the three structures separately.
| Room | Published structure represented in the script | Output taps | Feedback LPF | RT range |
|---|---|---|---|---|
| Small | 24 ms → DNAP 35(.3){22(.4), 8.3(.6)} → NAP 66(.1){30(.4)} | 0.5 / 0.5 | 4.2 kHz | 0.38–0.57 s |
| Medium | DNAP 35(.3){8.3(.7), 22(.5)} → 5 ms → AP 30(.5) → 67 ms → 15 ms + input → NAP 39(.3){9.8(.6)} → 108 ms | 0.5 / 0.5 / 0.5 | 2.5 kHz | 0.58–1.29 s |
| Large | AP 8(.3) → AP 12(.3) → 4 ms → 17 ms → NAP 87(.5){62(.25)} → 31 ms → 3 ms → DNAP 120(.5){76(.25), 30(.25)} | 0.34 / 0.14 / 0.14 | 2.6 kHz | ≥ 1.30 s |
AP = allpass, NAP = nested allpass, DNAP = double-nested allpass. Numbers in parentheses are the corresponding allpass coefficients.
Main controls
| Control | Default | Meaning |
|---|---|---|
| Topology | Schroeder 1962 | Selects the reverberator family. |
| Preset | Classic | Selects Custom, Classic, Small, Medium or Large. Historical-reference status depends on the topology as described above. |
| Reverb_time_RT60_s | 1.8 s | Requested decay target. Named presets replace this value. Gardner Custom also uses it to choose the appropriate published Small/Medium/Large structure. |
| Wet_dry_percent | 35 | Linear final mix between the rendered wet path and the dry path; clamped to 0–100. |
| Advanced_settings | Off | Opens topology-specific decay, network, tail and output controls. |
| Draw_visualization | On | Draws waveform, impulse response, decay and topology information. |
| Play_result | On | Plays the final Sound after processing. |
Advanced settings
Common controls
| Control | Role |
|---|---|
| Reverb time RT60 s | Editable copy of the active decay target. |
| Predelay ms | Delay before the reverberator input. |
| Stereo spread ms | Small right-channel timing offset used only for stereo rendering. It is an AudioTools spatial extension rather than part of the published mono reference values. |
| Wet dry percent | Same linear final mix as the main form. |
| Tail s | 0 selects automatic tail = 1.5 × RT60; minimum effective tail is 0.25 s. |
| Output ceiling | Final attenuation-only peak ceiling. |
| Output channels | Stereo or mono output. |
Schroeder and non-reference Moorer controls
| Control | Meaning |
|---|---|
| Damping | Feedback-loop high-frequency loss. One-pole mode accepts 0…0.95; the legacy two-tap FIR accepts 0…0.49. |
| Damping mode | One-pole lowpass or legacy two-tap FIR loop damping. |
| Comb count | 2–12 parallel feedback combs. |
| Shortest / Longest comb ms | Comb-delay range for non-reference configurations before sample-domain realization. |
| Allpass count | 0–6 series allpass sections. |
| Allpass gain | Common allpass coefficient, constrained to a stable range. |
| Wet contains direct sound | On keeps the comb bank’s inherent direct term. Off subtracts that direct contribution before the allpass chain. |
Moorer Classic
Classic uses the published Table 2 per-comb one-pole coefficients, so the generic Damping control is not used. Its early-reflection controls are shown for inspection, but the reference timing/gain table is supplied by Table 3. For creative changes, use Custom or one of the non-reference Moorer presets.
Gardner
The Gardner Advanced dialog identifies the active Figure 4.11 room structure and its published feedback low-pass cutoff. There is no generic room-size, allpass-gain or output-tap control in the reference implementation: those values belong to the selected Small, Medium or Large network. The RT feedback gain is calibrated from the rendered network.
Network equations
Feedback comb
Schroeder and the non-reference Moorer variants derive per-delay feedback gain from the requested RT60:
D is the realized delay in samples. Feedback is capped below unity for stability.
Moorer Classic feedback values
Classic uses one common DC loop gain across the six combs:
Frequency-dependent loss is then set by the six Table 2 one-pole coefficients described above.
Moorer low-pass feedback comb
This is the state-eliminated one-pole feedback form used by the script. DC retains the loop gain while high frequencies decay faster as d rises.
Series allpass
Nested allpass
Gardner’s reference networks combine ordinary allpasses with nested and double-nested sections. The script keeps those room-specific structures separate rather than collapsing them into one scalable generic network.
RT60, decay measurement and Gardner calibration
The processor renders an impulse response with the same network used for the audio and forms an energy-decay curve by Schroeder backward integration:
The preferred estimate is a least-squares T30 fit over −5 to −35 dB. If that span does not contain enough sampled points, the script tries a T20 fit over −5 to −25 dB, followed by crossing-based T30/T20 fallbacks when necessary. The reported RT60 comes from the fitted decay slope.
Gardner feedback calibration
Gardner’s published room networks and low-pass cutoffs remain fixed. Because the thesis does not publish the numerical RT-to-feedback lookup used in the original design process, the script searches only for the missing outer feedback gain. It performs eight bisection passes over a stable 0…0.995 range, renders the reference network for each candidate, measures its T30/T20 decay, and keeps the gain with the smallest error against the requested RT60.
This means the network topology, delays, allpass coefficients, output taps and feedback low-pass are historical reference values; the numerical RT-to-feedback mapping is the measured AudioTools reconstruction step.
Wet-path level and dry/wet mixing
Wet level is calibrated from the rendered impulse response. The script measures the mean impulse-response energy across the active wet channels and computes one shared gain:
The same netGain is applied to the impulse response and the audio wet path, preserving stereo balance. This is energy normalization of the reverberator network, not target peak normalization.
The final mix is linear:
For Schroeder and Moorer, Wet contains direct sound preserves or removes the direct term inherent in the comb bank. Gardner does not expose that switch because its topology is different.
After mixing, the script scales down only if the output exceeds the selected ceiling. Quiet material is not boosted.
Processing pipeline
- Copy the selected Sound to a zero-based working time axis and apply the chosen topology/preset.
- Resolve the active historical reference or AudioTools extension parameters.
- For Schroeder and creative Moorer variants, construct the requested comb/allpass delay sets. Moorer Classic instead maps the published delay values to the current sample grid and applies its published per-comb coefficients.
- For Moorer, build the early-response FIR. In Classic this is the published 19-tap Table 3 response; other Moorer presets use the deterministic parametric pattern.
- Feed the Moorer early response into the late comb/allpass branch and align the late entrance to the end of the early-response cluster.
- For Gardner, select the published Small, Medium or Large Figure 4.11 network and clamp its published low-pass cutoff below Nyquist only when the source sample rate requires it.
- Calibrate Gardner’s missing RT-to-feedback gain by bisection against measured impulse-response decay.
- Create one mono network send from the source.
- Render pass 1: a unit impulse through the selected network.
- Measure impulse-response energy and derive the shared wet-path normalization gain.
- Render pass 2: the actual audio through the same network and apply the measured wet gain.
- Measure the final impulse-response decay, apply the dry/wet mix and attenuation-only output ceiling, then rename, visualize and optionally play the result.
Channels, duration and level
- Wet send: a mono fold-down of the full source feeds the reverberator.
- Stereo wet output: two related network renders are produced with a small right-channel timing offset. This decorrelation is an AudioTools extension, not part of the published mono reference numbers.
- Mono output: the dry path averages all source channels.
- Stereo output, mono source: the same dry source feeds both channels.
- Stereo output, stereo source: left and right dry channels remain separate.
- Stereo output, 3+ channel source: dry channels are split into odd/even groups and averaged into left/right.
- Sample rate: preserved. Historical millisecond values are converted to the source sample grid. Moorer Classic interpolates its published 25/50 kHz one-pole values; Gardner’s feedback low-pass is clamped to 0.45 × sample rate only when its published cutoff would lie too near or above Nyquist.
- Duration: includes the source plus predelay and the selected tail. Moorer also reserves the early-response span before the late field enters.
- Start time: output is zero-based; a non-zero source
xminis not restored. - Level: wet-network energy is measurement-normalized first; the final peak stage attenuates only when necessary.
Visualization
The Picture-window figure adapts to the selected topology and reports the rendered result rather than only the requested parameters. It includes:
- Dry waveform and final result waveform.
- The rendered impulse response, with left/right network traces in stereo and markers for predelay and Moorer’s late-field entrance.
- A measured energy-decay curve with requested and measured RT60.
- Moorer: the early-response tap bank. Classic identifies the published Table 3 reference; creative presets identify the parametric AudioTools pattern.
- Schroeder / Moorer: realized comb and allpass delays, gains and sample counts.
- Gardner: the active Small, Medium or Large Figure 4.11 topology, published RT range, feedback low-pass, output taps and calibrated feedback gain.
- A compact parameter strip and summary of decay measurement and wet calibration.
Historical and technical context
The three designs trace a useful development in artificial reverberation. Schroeder established the influential combination of recursive comb filters for echo density and allpass structures for diffusion. Moorer extended that family with an explicit early response and frequency-dependent loss in the feedback loops. Gardner explored room-class-specific diffuse networks built from nested allpasses and filtered feedback.
What makes the comparison useful is that the reference structures are presented through one measurement and listening framework. The same source can be passed through each design, while the script reports the impulse response and decay it actually produced. This makes it possible to hear and inspect how different network structures create density, colour and decay rather than treating RT60 as the whole identity of a reverb.
Further reading
Schroeder, M. R. (1962). “Natural Sounding Artificial Reverberation.” Journal of the Audio Engineering Society, 10(3), 219–223. AES E-Library record. Primary source for the comb/allpass reverberator architecture.
Moorer, J. A. (1979). “About This Reverberation Business.” Computer Music Journal, 3(2), 13–28. DOI: 10.2307/3680280. JSTOR record. Primary source for the Table 2 comb parameters, Table 3 early response and Figure 12 structure used by the Classic preset.
Gardner, W. G. (1992). The Virtual Acoustic Room. Master’s thesis, Massachusetts Institute of Technology, Department of Media Arts and Sciences. MIT Media Lab PDF. Primary source for the Small, Medium and Large Figure 4.11 reverberators.
ISO 3382-1:2009. Acoustics — Measurement of room acoustic parameters — Part 1: Performance spaces. ISO record. Reference for reverberation-time evaluation from impulse-response decay.