Build with this node

Start with a prompt in Studio, or copy it into your own coding agent.

Ask Studio

@maruaudio/dsp/reverbs/stereo-dattorro wraps @maru/reverbs-dattorro for an effect slot: a bounded integer-frame pre-delay in front of the one coupled true-stereo network, and normalized diffusion, damping and decay controls. At init it sets the core's dryWet and volume fields to 1; the outer dry/wet law belongs to the caller (the multi-effect).

Parameters

SetterRange the setter enforcesDefault
setStereoDattorroPredelay0 to 150 ms, floored to frames; NaN or −∞ → 0, +∞ → 1500 (direct)
setStereoDattorroDiffusion0 to 1; core diffussion1 = 0.7 × n, diffussion2 = 0.7 + 0.3 × nCore defaults (0, 0.7)
setStereoDattorroDamping0 to 1, the source's loss control (1 is most damping)0.625
setStereoDattorroDecayRate0 to STEREO_DATTORRO_MAX_DECAY_RATE (0.95), normalized, not seconds0.7

Lifecycle

initStereoDattorroNode(rate) allocates the core and two 150 ms pre-delay rings → setters → stereoDattorroNodeTick(state, left, right, output) → resetStereoDattorroNode, an immediate clear outside realtime. Live replacement uses clearStereoDattorroNodeStep, at most 256 stores per call until it returns stereoDattorroClearStoreCount(state), then finalizeStereoDattorroNodeClear (27 scalar stores). Ticks allocate nothing.

When to use it

A plate reverb slot in a multi-effect chain where pre-delay is set in milliseconds and decay and damping are normalized controls.

Limits

  • At zero pre-delay the core is fed directly with no hidden sample of delay; the rings keep recording while bypassed, so a later pre-delay reads recent input, not a stale burst.
  • The core's diffussion1 field sets its output blend, so the output is not wet only: the input reaches it at 10^(−6/20) × (1 − (1 + diffussion1)/2), about 0.25 at the default diffusion and 0.075 at diffusion 1.
  • Delay taps in the core do not scale with the sample rate.

Algorithm properties and proofs

No Lean 4 proof is mapped to this node.

Explore proofs alongside performance

Parameters

ParameterTypeSetter
Milliseconds milliseconds

Integer-frame physical pre-delay. Zero bypasses the rings with no hidden sample delay.

floatsetStereoDattorroPredelay
Stereo dattorro diffusion stereoDattorroDiffusion

Normalized diffusion drives both source diffusion stages over their stable ranges.

floatsetStereoDattorroDiffusion
Stereo dattorro damping stereoDattorroDamping

Damping is the source's normalized loss control: 0% least damping, 100% most damping.

floatsetStereoDattorroDamping
Stereo dattorro decay rate stereoDattorroDecayRate

Normalized source decay-rate law; it is intentionally not labeled in seconds.

floatsetStereoDattorroDecayRate

Dependencies

Dependents

Used by