@maruaudio/dsp/reverbs/stereo-schroeder presents two @maru/reverbs-schroeder cores as a wet-only stereo reverb. Both cores run at mix 1. Two identical mono cores give identical output under mono excitation, so the right wet path has a fixed delay of max(1, round(23 × rate / 48000)) frames, a modest decorrelation offset. An optional integer-frame pre-delay sits in front; the caller (the multi-effect) supplies the outer dry/wet law.
Parameters
| Setter | Range the setter enforces | Default |
|---|---|---|
setStereoSchroederRoomSize | 0 to 1 on both cores (feedback 0.72 to 0.94) | Feedback 0.72 |
setStereoSchroederDamping | 0 to 1 on both cores (damping 0.05 to 0.5) | Damping 0.05 |
setStereoSchroederPredelay | 0 to 150 ms, floored to frames; NaN or −∞ → 0, +∞ → 150 | 0 (direct) |
Lifecycle
initStereoSchroederNode(rate) allocates both cores, the decorrelation line and two 150 ms pre-delay rings → setters → stereoSchroederNodeTick(state, left, right, output) → resetStereoSchroederNode, an immediate clear outside realtime that restores mix 1. Live replacement uses clearStereoSchroederNodeStep, sharing one budget of at most 256 stores per call across both cores and three adapter lines until it returns stereoSchroederClearStoreCount(state), then finalizeStereoSchroederNodeClear (26 scalar stores). Ticks allocate nothing.
When to use it
A small stereo reverb slot with a pre-delay, where the Schroeder core's fixed cost suits the chain.
Limits
- Under mono input the right channel is the left channel delayed by the decorrelation offset; it is not an independent stereo field.
- At zero pre-delay the cores are fed directly while the rings keep recording.
- The cores' outputs are doubles; parameter changes apply at once.