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.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.4 (2026) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

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.

Historical reference status: Moorer Classic follows the published six-comb Table 2, preferred 19-tap Table 3 and Figure 12 routing. Gardner Small, Medium and Large follow the three published Figure 4.11 structures. Schroeder’s 1962 paper specifies an approximately 30–45 ms comb-delay span rather than one mandatory four-number table, so Classic uses the widely adopted later 29.7 / 37.1 / 41.1 / 43.7 ms realization. Stereo timing offsets, arbitrary requested RT60 values and the non-reference room-size presets are AudioTools extensions.

The three topologies

TopologyCore structureReference behavior in this script
Schroeder 1962Parallel feedback comb bank → series allpass chainArchitecture-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 1979Early-response FIR → six low-pass feedback combs → allpass, with the early response also mixed to the outputClassic 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 1992Three separate diffuse-reverberator networks using cascaded, nested and double-nested allpasses in filtered feedback loopsSmall, 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

  1. Select exactly one Sound object.
  2. Run Historic_Reverberators.praat.
  3. Choose Schroeder 1962, Moorer 1979 or Gardner 1992.
  4. 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.
  5. Use Custom or the non-reference Small/Medium/Large presets under Schroeder and Moorer when you want creative variants rather than the reference configuration.
  6. Open Advanced settings for decay, predelay, stereo spread, tail, output format and topology-specific controls.
  7. 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

PresetRT60WetNetworkDampingPredelayStatus
CustomForm valueForm value4 combs, 29.7–43.7 ms; 2 allpasses, g 0.700.3012 msUser-defined extension
Classic1.90 s40%4 combs, 29.7 / 37.1 / 41.1 / 43.7 ms family; 2 allpasses, g 0.7000 msHistorical architecture + conventional later delay set
Small0.55 s22%4 combs, 13.5–22.0 ms; 2 allpasses0.426 msAudioTools extension
Medium2.10 s38%6 combs, 32–58 ms; 3 allpasses0.3422 msAudioTools extension
Large5.50 s52%8 combs, 45–92 ms; 3 allpasses, g 0.750.2045 msAudioTools extension

Moorer 1979

PresetRT60WetLate networkEarly responsePredelayStatus
CustomForm valueForm value6 combs, 50–78 ms; one-pole damping 0.36; 1 allpass18 parametric taps, 8–80 ms, level 0.7012 msUser-defined extension
Classic2.00 s40%Published 50 / 56 / 61 / 68 / 72 / 78 ms combs with Table 2 per-comb coefficients; 6 ms / 0.70 allpassPublished 19-tap Table 3, 0–79.7 ms, level 1.00 msReference preset
Small0.70 s25%6 combs, 22–38 ms; damping 0.50; 1 allpass12 parametric taps, 4–34 ms, level 0.804 msAudioTools extension
Medium2.20 s38%6 combs, 50–78 ms; damping 0.40; 1 allpass18 parametric taps, 8–80 ms, level 0.7015 msAudioTools extension
Large4.50 s50%6 combs, 68–104 ms; damping 0.26; 2 allpasses, g 0.7222 parametric taps, 12–130 ms, level 0.6032 msAudioTools extension

Gardner 1992

PresetRT60WetSelected structureFeedback LPFStatus
CustomForm valueForm valueSmall for RT ≤ 0.57 s; Medium for 0.58–1.29 s; Large for RT ≥ 1.30 s4.2 / 2.5 / 2.6 kHz by room classPublished structure selected from user RT; AudioTools gain calibration and default predelay/spread
Classic1.00 s35%Published Medium structure2.5 kHzConvenience alias
Small0.48 s25%Published Small structure4.2 kHzFigure 4.11 reference network
Medium0.95 s35%Published Medium structure2.5 kHzFigure 4.11 reference network
Large2.60 s45%Published Large structure2.6 kHzFigure 4.11 reference network
Gardner RT ranges: the source associates the three designs with approximately 0.38–0.57 s (Small), 0.58–1.29 s (Medium) and 1.30 s upward (Large). The named AudioTools targets are chosen inside those ranges. The network values are fixed by the published design; the feedback gain needed for the requested RT is measured and solved by the script.

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.

CombDelayg1 at 25 kHzg1 at 50 kHz
C150 ms0.240.46
C256 ms0.260.48
C361 ms0.280.50
C468 ms0.290.52
C572 ms0.300.53
C678 ms0.320.55

The preferred 19-tap early response is also reproduced before sample quantization:

time (ms): 0, 4.3, 21.5, 22.5, 26.8, 27.0, 29.8, 45.8, 48.5, 57.2, 58.7, 59.5, 61.2, 70.7, 70.8, 72.6, 74.1, 75.3, 79.7 gain: 1.000, .841, .504, .491, .379, .380, .346, .289, .272, .192, .193, .217, .181, .180, .181, .176, .142, .167, .134
Source of the early response: Moorer’s 19-tap pattern is based on an idealized geometric simulation of Boston Symphony Hall. It should not be described as a directly measured hall impulse response.

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.

RoomPublished structure represented in the scriptOutput tapsFeedback LPFRT range
Small24 ms → DNAP 35(.3){22(.4), 8.3(.6)} → NAP 66(.1){30(.4)}0.5 / 0.54.2 kHz0.38–0.57 s
MediumDNAP 35(.3){8.3(.7), 22(.5)} → 5 ms → AP 30(.5) → 67 ms → 15 ms + input → NAP 39(.3){9.8(.6)} → 108 ms0.5 / 0.5 / 0.52.5 kHz0.58–1.29 s
LargeAP 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.142.6 kHz≥ 1.30 s

AP = allpass, NAP = nested allpass, DNAP = double-nested allpass. Numbers in parentheses are the corresponding allpass coefficients.

Feedback gain: Gardner describes the RT-to-feedback relationship as obtained empirically, but the thesis does not provide a numerical lookup table for that mapping. The script therefore keeps the published network fixed and solves only the outer feedback gain against the rendered impulse response.

Main controls

ControlDefaultMeaning
TopologySchroeder 1962Selects the reverberator family.
PresetClassicSelects Custom, Classic, Small, Medium or Large. Historical-reference status depends on the topology as described above.
Reverb_time_RT60_s1.8 sRequested decay target. Named presets replace this value. Gardner Custom also uses it to choose the appropriate published Small/Medium/Large structure.
Wet_dry_percent35Linear final mix between the rendered wet path and the dry path; clamped to 0–100.
Advanced_settingsOffOpens topology-specific decay, network, tail and output controls.
Draw_visualizationOnDraws waveform, impulse response, decay and topology information.
Play_resultOnPlays the final Sound after processing.

Advanced settings

Common controls

ControlRole
Reverb time RT60 sEditable copy of the active decay target.
Predelay msDelay before the reverberator input.
Stereo spread msSmall 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 percentSame linear final mix as the main form.
Tail s0 selects automatic tail = 1.5 × RT60; minimum effective tail is 0.25 s.
Output ceilingFinal attenuation-only peak ceiling.
Output channelsStereo or mono output.

Schroeder and non-reference Moorer controls

ControlMeaning
DampingFeedback-loop high-frequency loss. One-pole mode accepts 0…0.95; the legacy two-tap FIR accepts 0…0.49.
Damping modeOne-pole lowpass or legacy two-tap FIR loop damping.
Comb count2–12 parallel feedback combs.
Shortest / Longest comb msComb-delay range for non-reference configurations before sample-domain realization.
Allpass count0–6 series allpass sections.
Allpass gainCommon allpass coefficient, constrained to a stable range.
Wet contains direct soundOn 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

y[n] = x[n] + g · y[n − D]

Schroeder and the non-reference Moorer variants derive per-delay feedback gain from the requested RT60:

g = 10^(−3D / (RT60 · f_s))

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:

g = 1 − 0.366 / RT60

Frequency-dependent loss is then set by the six Table 2 one-pole coefficients described above.

Moorer low-pass feedback comb

y[n] = x[n] − d·x[n−1] + d·y[n−1] + g(1−d)·y[n−D]

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

y[n] = −g·x[n] + x[n−D] + g·y[n−D]

Nested allpass

y[n] = −g₂x[n] + g₁g₂x[n−D₁] − g₁x[n−D₂] + x[n−D₁−D₂] + g₁y[n−D₁] − g₁g₂y[n−D₂] + g₂y[n−D₁−D₂]

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:

EDC(t) = 10 log10( remaining impulse-response energy from t onward / total impulse-response energy )

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.

Measured versus requested decay: frequency-dependent damping can make the broadband measured RT shorter than a low-frequency or nominal feedback target. The Info window therefore reports the decay measured from the actual rendered impulse response.

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:

energyGain = mean_ch Σ h_ch[n]² netGain = 1 / sqrt(energyGain)

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:

output = wetMix · wet + (1 − wetMix) · dry

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

  1. Copy the selected Sound to a zero-based working time axis and apply the chosen topology/preset.
  2. Resolve the active historical reference or AudioTools extension parameters.
  3. 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.
  4. 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.
  5. Feed the Moorer early response into the late comb/allpass branch and align the late entrance to the end of the early-response cluster.
  6. 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.
  7. Calibrate Gardner’s missing RT-to-feedback gain by bisection against measured impulse-response decay.
  8. Create one mono network send from the source.
  9. Render pass 1: a unit impulse through the selected network.
  10. Measure impulse-response energy and derive the shared wet-path normalization gain.
  11. Render pass 2: the actual audio through the same network and apply the measured wet gain.
  12. 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

Visualization

The Picture-window figure adapts to the selected topology and reports the rendered result rather than only the requested parameters. It includes:

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.

Reference versus extension: historical numerical values are retained where the sources specify them. AudioTools additions — stereo timing offsets, user-selected RT60, creative non-reference presets and Gardner’s measured reconstruction of the unpublished RT-to-feedback mapping — are kept explicit rather than presented as original historical parameters.

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.