Contents

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.

ParamTypeDefaultDescription
insignal-Input signal
roomnumber0.5Room size (0-1)
dampnumber0.5High frequency damping (0-1)
room_scalenumber0.28Density factor (affects comb filter feedback)
room_offsetnumber0.7Decay baseline offset
drynumber1.0Dry signal level (Category A)
wetnumber0.5Wet (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(@)

Related: dattorro, fdn


dattorro

Dattorro Reverb - High-quality plate reverb algorithm.

ParamTypeDefaultDescription
insignal-Input signal
decaynumber0.7Decay time (0-1)
predelaynumber20.0Predelay in milliseconds
in_diffnumber0.75Input diffusion (smears input transients)
dec_diffnumber0.625Decay diffusion (smooths reverb tail)
drynumber1.0Dry signal level (Category A)
wetnumber0.5Wet (processed) signal level (Category A)
dampingnumber0.0Tail high-frequency damping (0-1)
mod_depthnumber0.0Tank modulation depth (0-1)
lfo_ratenumber0.5Modulation 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(@)

Related: freeverb, fdn


fdn

FDN Reverb - Feedback Delay Network reverb.

ParamTypeDefaultDescription
insignal-Input signal
decaynumber0.8Decay time (0-1)
dampnumber0.3High frequency damping (0-1)
drynumber1.0Dry signal level (Category A)
wetnumber0.5Wet (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(@)

Related: freeverb, dattorro