Reverbs
Reverbs simulate acoustic spaces by generating many delayed, filtered reflections. Each algorithm has its own character.
All reverbs are stereo-native: a mono input widens into a genuinely stereo tail (cross-coupled tanks, decorrelated comb networks) — no stereo() wrapper needed. A stereo input is processed with real inter-channel coupling rather than as two independent mono reverbs.
All effects in this file expose dry and wet as their last two parameters (Category A defaults dry=1, wet=0.5 for additive effects). See Effect Parameters Convention for the full spec.
freeverb
Freeverb - Classic Schroeder-style algorithmic reverb.
| Param | Type | Default | Description |
|---|---|---|---|
| in | signal | - | Input signal |
| room | number | 0.5 | Room size (0-1) |
| damp | number | 0.5 | High frequency damping (0-1) |
| room_scale | number | 0.28 | Density factor (affects comb filter feedback) |
| room_offset | number | 0.7 | Decay baseline offset |
| dry | number | 1.0 | Dry signal level (Category A) |
| wet | number | 0.5 | Wet (processed) signal level (Category A) |
Aliases: reverb
A classic reverb algorithm with a smooth, natural sound. Higher room values produce larger spaces with longer decay. The room_scale and room_offset parameters tune the reverb character.
// Medium room reverb
saw(220) * ar(trigger(2)) |> freeverb(@, 0.5, 0.5) |> out(@) // Large hall
saw(110) * ar(trigger(1)) |> freeverb(@, 0.9, 0.3) |> out(@) // Damped small room
noise() * ar(trigger(4), 0.001, 0.05)
|> freeverb(@, 0.2, 0.8)
|> out(@) // Custom room character (more density, longer baseline decay)
saw(220) * ar(trigger(2))
|> freeverb(@, 0.5, 0.5, 0.35, 0.8)
|> out(@) dattorro
Dattorro Reverb - High-quality plate reverb algorithm.
| Param | Type | Default | Description |
|---|---|---|---|
| in | signal | - | Input signal |
| decay | number | 0.7 | Decay time (0-1) |
| predelay | number | 20.0 | Predelay in milliseconds |
| in_diff | number | 0.75 | Input diffusion (smears input transients) |
| dec_diff | number | 0.625 | Decay diffusion (smooths reverb tail) |
| dry | number | 1.0 | Dry signal level (Category A) |
| wet | number | 0.5 | Wet (processed) signal level (Category A) |
| damping | number | 0.0 | Tail high-frequency damping (0-1) |
| mod_depth | number | 0.0 | Tank modulation depth (0-1) |
| lfo_rate | number | 0.5 | Modulation LFO rate in Hz |
Aliases: plate
The Dattorro plate reverb produces long, shimmering tails well-suited to vocals and synth pads. The predelay separates the dry signal from the reverb onset. The diffusion parameters control how quickly transients are smeared.
damping, mod_depth, and lfo_rate are named arguments. damping rolls off high frequencies in the tail for a darker reverb; mod_depth (with lfo_rate) modulates the tank delays for a richer, chorused tail.
// Lush plate reverb
saw(220) * ar(trigger(2)) |> dattorro(@, 0.8, 30) |> out(@) // Short bright plate
tri(440) * ar(trigger(4)) |> dattorro(@, 0.5, 10) |> out(@) // High diffusion for pad-like washes
saw(220) * ar(trigger(2))
|> dattorro(@, 0.9, 50, 0.9, 0.8)
|> out(@) // Dark, modulated tail
saw(220) * ar(trigger(2))
|> dattorro(@, 0.9, 40, damping: 0.6, mod_depth: 0.4, lfo_rate: 0.8)
|> out(@) fdn
FDN Reverb - Feedback Delay Network reverb.
| Param | Type | Default | Description |
|---|---|---|---|
| in | signal | - | Input signal |
| decay | number | 0.8 | Decay time (0-1) |
| damp | number | 0.3 | High frequency damping (0-1) |
| dry | number | 1.0 | Dry signal level (Category A) |
| wet | number | 0.5 | Wet (processed) signal level (Category A) |
Aliases: room
A matrix-based reverb using multiple delay lines with cross-feedback. Creates dense, even decay patterns suitable for ambient textures.
// Dense ambient reverb
saw(55) * ar(trigger(0.5)) |> fdn(@, 0.9, 0.4) |> out(@) // Tight room
noise() * ar(trigger(8), 0.001, 0.02)
|> fdn(@, 0.4, 0.6)
|> out(@)