audioJS

@audio/reverb-shimmer

Status calibrated

npm1.1.4licenseMIT

Shimmer reverb — octave-up pitch-shifted feedback tail (Valhalla/Eno-Lanois class)

Overview

Install
Updated
Family
reverb, 7 packages under it
Tags
shape
import shimmer from '@audio/reverb-shimmer'

A 4-comb reverb core whose feedback path is pitch-shifted up an octave before re-injection, so the tail climbs into sparkling upper octaves the longer it rings (Valhalla Shimmer / Eno-Lanois class). The in-loop shifter is a self-contained 2-head varispeed ring buffer (write head advances ×1, two read heads advance ×2 with a triangular crossfade) — no dependency on @audio/shift-*; those packages are for offline high-quality shifting, this one is built to run inside a feedback loop. Mono only.

shimmer(data, { decay: 0.7, shimmer: 0.5, damping: 0.3, mix: 0.4, fs: 44100 })
shimmer(data, { shimmer: 0.9 })  // heavier octave-up content in the tail
Param Default
decay 0.7 0..1 — comb feedback (tail length)
shimmer 0.5 0..1 — share of the feedback that returns an octave up; the loop gain stays below 1, so the tail always decays
damping 0.3 0..1 — high-frequency loss in the comb feedback path
mix 0.4 0..1 — wet/dry blend
fs 44100 sample rate; delay/ring-buffer lengths scale to it

Mutates data in place and returns it. Fresh comb and ring-buffer state is allocated per call — no state carries across calls, reprocess the whole buffer each time.

Use when: ambient pads, ethereal tails that climb in pitch as they decay.
Not for: natural room/plate character (the octave-up feedback is the deliberate coloration) or stereo width (mono only — run twice with decorrelated seeds for pseudo-stereo).


Part of the @audio/reverb family.

MIT © audiojs