Build with this node

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

Ask Studio

@maruaudio/dsp/distortion/classic-amp is the classic nonlinear amp v1 pre-cabinet voice, mono, with no captured model:

× input gain (f32) → 70 Hz high-pass → +4 dB / 1.8 kHz high shelf
→ preamp waveshaper (4×) → 180 Hz low shelf → 750 Hz peak → 3.2 kHz high shelf
→ power waveshaper (4×)

The filters are @maru/filters-biquad sections and both waveshapers are @maru/distortion-oversampled-waveshaper, in the arithmetic order of the persistent-classic-amp kernel, which now ticks this DSP node. The cabinet and output trim are not part of it.

Parameters

SetterRange the setter enforcesv1 voicing
setClassicAmpStageInputPosition 0 to 1 (NaN → 0), gain 0.25 + 3.75 × position1.8
setClassicAmpStagePreampDrive0 to 1 (NaN → 0)0.55, at −3 dB output
setClassicAmpStagePowerDrive0 to 1 (NaN → 0)0.3, at −4 dB output
setClassicAmpStageBassDb, MidDb, TrebleDb−12 to +12 dB (NaN → 0)0 dB

Lifecycle

initClassicAmpStage(rate) allocates only; call resetClassicAmpStage before the first tick to apply the v1 voicing, flatten the tone stack and clear every history → prepareClassicAmpStageSampleRate when the rate changes, keeping the corner frequencies and clearing history → setters → classicAmpStageTick. clearClassicAmpStage clears history and keeps settings. Tone setters recompute one biquad each. Ticks allocate nothing and do no I/O.

When to use it

The amp half of a guitar or bass rig ahead of a cabinet convolver, as Amp Rig's Classic engine uses it.

Limits

  • Mono sample tick; each waveshaper adds 3.75 samples of FIR delay.
  • Without resetClassicAmpStage after init the filters are unconfigured.
  • Tone and 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
Position position

Input gain from a unit position: 0.25 + position * 3.75.

floatsetClassicAmpStageInput
Classic amp stage preamp drive classicAmpStagePreampDrivefloatsetClassicAmpStagePreampDrive
Classic amp stage power drive classicAmpStagePowerDrivefloatsetClassicAmpStagePowerDrive
Classic amp stage bass db classicAmpStageBassDbfloatsetClassicAmpStageBassDb
Classic amp stage mid db classicAmpStageMidDbfloatsetClassicAmpStageMidDb
Classic amp stage treble db classicAmpStageTrebleDbfloatsetClassicAmpStageTrebleDb

Ports

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

One sample per classicAmpStageTick call.

Dependencies

Dependents

No other node imports this one.

Used by