@audio/ reverb-spring
Status calibrated
npm1.1.3licenseMIT
Spring reverb — dispersive allpass-chain loop (Parker-Välimäki class simplified model)
import spring from '@audio/reverb-spring'
A feedback loop of 24 cascaded first-order dispersive allpass filters plus a short pre-delay: the cascade makes group delay frequency-dependent, producing the characteristic spring "boing"/chirp on transients. A simplified digital spring after Parker & Välimäki, "Spring reverberation: a physical perspective" (DAFx-10). Mono only.
spring(data, { decay: 0.6, tension: 0.5, damping: 0.4, mix: 0.35, fs: 44100 })
spring(data, { tension: 0.9 }) // tighter spring, more pronounced dispersion chirp
| Param | Default | |
|---|---|---|
decay |
0.6 |
0..1 — loop feedback (tail length) |
tension |
0.5 |
0..1 — allpass dispersion coefficient (spring "tightness") |
damping |
0.4 |
0..1 — high-frequency loss in the loop |
mix |
0.35 |
0..1 — wet/dry blend |
fs |
44100 |
sample rate; delay lengths scale to it |
Mutates data in place and returns it. Fresh loop/allpass state is allocated per call — no state carries across calls, reprocess the whole buffer each time.
Use when: guitar-amp/vintage spring-tank character, transient "boing".
Not for: smooth room/plate tails (the dispersion coloration is the point — use freeverb/dattorro for smooth) or stereo width (mono only).
Part of the @audio/reverb family.
MIT © audiojs