Build with this node

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

Ask Studio

@maruaudio/dsp/distortion/voiced-overdrive is a wet-only mono overdrive built from reviewed DSP nodes:

RBJ high-pass → @maru/distortion-tone-shape × compensation → RBJ low-pass → dB trim

Both filters are Butterworth (Q 0.7071) sections of @maru/filters-biquad. The tone-shape transfer has a small-signal gain of (3 + 100 × drive)/9; the stored compensation 3/(1 + drive × 100/3) restores it to one, so drive 0 is a linear high-pass, low-pass and level stage.

Parameters

Setters use clampFiniteWithFallback (@maru/math-range).

SetterRange the setter enforcesFallbackDefault
setVoicedOverdriveDrive0 to 100
setVoicedOverdriveInputLowCutHz20 to 500 Hz20 Hz20 Hz
setVoicedOverdriveToneCutoffHz250 Hz to min(18 kHz, 0.45 × rate)the maximumthe maximum
setVoicedOverdriveOutputDb−24 to +24 dB (@maru/math-decibels)0 dB0 dB

Lifecycle

initVoicedOverdriveNode(rate) (8 to 384 kHz, fallback 48 kHz) → setters → voicedOverdriveNodeTick → resetVoicedOverdriveNode, which clears both filter histories and keeps the controls. Filter setters recompute their coefficients. Ticks allocate nothing and do no I/O.

When to use it

A practical overdrive slot for guitar, bass or keys with an input low-cut, a post-drive tone and an output trim. A stereo caller runs two states and applies dry/wet outside.

Limits

  • Mono sample tick, wet only, no oversampling or latency.
  • Inputs below 0.001 after the low-cut give 0, from the tone-shape silence gate.
  • Control changes apply at once, with no smoothing.
  • Distinct from @maru/distortion-direct-overdrive, whose drive 0 is not a clean stage.

Algorithm properties and proofs

No Lean 4 proof is mapped to this node.

Explore proofs alongside performance

Parameters

ParameterTypeSetter
Drive drive

Set the 0..1 amount of the retained Tone-15.1 rational transfer.

floatsetVoicedOverdriveDrive
Voiced overdrive input low cut hz voicedOverdriveInputLowCutHz

Set the input high-pass cutoff in Hz before the nonlinear transfer.

floatsetVoicedOverdriveInputLowCutHz
Voiced overdrive tone cutoff hz voicedOverdriveToneCutoffHz

Set the post-drive low-pass tone cutoff in Hz.

floatsetVoicedOverdriveToneCutoffHz
Output db outputDb

Set output trim after the tone stage. No dry/wet mix exists in this leaf.

floatsetVoicedOverdriveOutputDb

Ports

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

One sample per voicedOverdriveNodeTick call.

Dependencies

Dependents

Used by