Download free Part of NULL JSFX 2.5: 113 plugins, free and open source (MIT). Easiest with NULL JSFX Hub.

Listen

The same music with the Warm Tube preset and without the plugin. Switch while it plays.

Controls

  • ShapeCustom / Soft / Hard / Tube / Fold / Sine / Steps / Asym — Picks the transfer curve: Soft, Hard, Tube, Fold, Sine, Steps and Asym are built in, Custom uses the eight points below (in the GFX and VST3/CLAP interfaces, picking a shape copies its points and dragging one switches to Custom).
  • Drive0 to 36 dB — Gain into the curve (0 to 36 dB): the harder you drive, the further up the curve the signal reaches and the more harmonics it makes.
  • Bias−50 to +50% — Adds a DC offset before the curve (-50 to +50%) so the two halves of the wave hit different parts of it, for even harmonics; the offset is removed again after the curve.
  • SymmetrySymmetric / Asymmetric — Symmetric mirrors the curve for the negative half of the wave; Asymmetric gives the negative half a fixed, gentler curve instead, for even harmonics (the Asym shape always does this).
  • OversamplingOff / 2x / 4x — Runs the curve at 2x or 4x the sample rate so the harmonics it creates do not fold back as aliasing (Off = no latency, more grit).
  • Tone1000 to 20000 Hz — A low-pass filter after the curve (1 to 20 kHz, off at 20 kHz) to tame the fizz of heavy settings.
  • Mix0 to 100% — Blend of shaped and dry signal (the dry path is delayed to match), for parallel distortion.
  • Output−24 to +12 dB — Level after the mix (-24 to +12 dB).
  • P1 X0 to 1 — Input position of curve point 1 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P1 Y−1 to +1 — Output of curve point 1 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P2 X0 to 1 — Input position of curve point 2 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P2 Y−1 to +1 — Output of curve point 2 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P3 X0 to 1 — Input position of curve point 3 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P3 Y−1 to +1 — Output of curve point 3 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P4 X0 to 1 — Input position of curve point 4 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P4 Y−1 to +1 — Output of curve point 4 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P5 X0 to 1 — Input position of curve point 5 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P5 Y−1 to +1 — Output of curve point 5 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P6 X0 to 1 — Input position of curve point 6 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P6 Y−1 to +1 — Output of curve point 6 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P7 X0 to 1 — Input position of curve point 7 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P7 Y−1 to +1 — Output of curve point 7 (-1 to +1) for that input; values below the previous points fold the wave back.
  • P8 X0 to 1 — Input position of curve point 8 (0 to 1 of full scale; 0 leaves the point unused), read when Shape is Custom.
  • P8 Y−1 to +1 — Output of curve point 8 (-1 to +1) for that input; values below the previous points fold the wave back.

Best uses

  • Draw your own distortion curve and hear it change as you drag the points
  • Warm up bass, synths or drums with soft tube-like saturation and a little bias
  • Fold basslines and leads into rich, metallic overtones
  • Add even harmonics with the asymmetric curve for a fuller, rounder tone
  • Parallel distortion with Mix, tamed by the Tone low-pass

Properties

Signal chain: Drive gain → optional oversampling (1 or 2 linear-phase halfband FIR stages, 63/23 taps, as in Clipper) → Bias offset → the transfer curve: (0, 0) plus up to 8 points joined by monotone cubic (PCHIP) segments, sampled into a 1024-step table read with linear interpolation, flat after the last point and above full scale, mirrored for negative input (or a fixed gentler curve in Asymmetric) → back down → 10 Hz DC blocker → Tone (12 dB/oct low-pass, off at 20 kHz) → Mix with the delayed dry signal → Output. Latency 0 / 31 / 37 samples (Off / 2x / 4x), reported for delay compensation.

Formats

  • JSFXJSFX for REAPER, with REAPER's own sliders
  • GFXJSFX GFX for REAPER, with its own interface
  • VST3VST3 for any DAW
  • CLAPCLAP for any DAW

Factory presets

Warm Tube · Hard Edge · Folded Bass · Sine Fuzz · Bit Steps · Even Harmonics · Custom S-Curve

Try it

Try it on orOS StudioAdd it to a track in your browser, with its own interface. Nothing to install.