Build with this node

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

Ask Studio

@maruaudio/dsp/distortion/direct-overdrive ports the DaisySP Overdrive: a drive-dependent input gain, the bounded rational soft clip x (27 + x²)/(27 + 9x²) with x clamped to ±3, and a reciprocal output gain calibrated from the same control, all in f32. It has no oversampling, FIR, buffer or latency.

d = 2 × clamp(drive, 0, 1)
pre = d/2 + (24·d⁵ − d/2) · d²
post = 1 / softClip(0.33 + d(2 − d) · (pre − 0.33))
y = softClip(pre × x) × post

Parameters

SetterRange the setter enforcesDefault
setDirectOverdriveDrive0 to 1; NaN → 0 (DaisySP fclamp)0.5

initDirectOverdriveNode() takes no sample rate. The state holds the doubled drive and the two derived gains.

Lifecycle

initDirectOverdriveNode → setDirectOverdriveDrive → directOverdriveNodeTick. There is no signal history, so nothing needs a reset when a host retires or re-enables it. Ticks allocate nothing and do no I/O.

When to use it

A zero-latency overdrive whose gain and output level both follow one control, matching a DaisySP-based device sample for sample.

Limits

  • Mono sample tick, wet only, no oversampling: high drive aliases.
  • The soft clip saturates at ±1 for pre-gained inputs beyond ±3, so the output peaks at post.
  • Drive changes apply at once, with no smoothing.

Algorithm properties and proofs

No Lean 4 proof is mapped to this node.

Explore proofs alongside performance

Parameters

ParameterTypeSetter
Value value

Update the bounded 0..1 drive control without allocating or retaining audio.

floatsetDirectOverdriveDrive

Ports

  • In ininput · audio · mono
  • Out outoutput · audio · mono

One sample per directOverdriveNodeTick call.

Dependencies

None: this node imports no other node.

Dependents

Used by