what WARM does
WARM adds harmonic saturation to your audio — the subtle richness that makes recordings feel alive. it models three analog saturation circuits: tape, tube, and transformer. each has a genuinely different harmonic signature because each uses a different waveshaping nonlinearity.
unlike generic distortion plugins, WARM uses Chebyshev polynomials to control each harmonic independently. the result is musical saturation where you control the character, not just the amount.
controls
WARM has 4 knobs, 4 draggable EQ nodes, and a character mode selector.
knobs
| control | range | default | what it does |
|---|---|---|---|
DRIVE | 2–24 dB | 4 dB | how hard the signal hits the saturation circuit. higher = more harmonics, more color. |
TONE | -100% to +100% | 0% | tilt EQ around 1 kHz. negative = darker. positive = brighter. opposing shelves keep energy balanced. |
MIX | 0–100% | 100% | wet/dry blend. use 30–70% for parallel saturation. |
DEPTH | 0–100% | 50% | spectral pre-gain amount. controls how much the spectral shaping affects the signal before saturation. |
toggle buttons
| button | what it does |
|---|---|
DELTA | hear what WARM is adding. output = wet - dry. you should hear only harmonics, not the original signal. |
ODD | suppresses even harmonics (h2, h4, h6). useful for a cleaner, more transparent saturation. most noticeable on Tape character. |
character selector
| character | sound |
|---|---|
TAPE | symmetric tanh saturation. warm, odd-harmonic dominant (h3, h5, h7). gentle HF rolloff at 12 kHz. classic analog warmth. |
TUBE | bias-shifted asymmetric clipping. strong 2nd harmonic (h2 > h3 by ~6 dB). presence boost at 3 kHz. rich, musical distortion. |
XFMR | quadratic asymmetry. deep even-harmonic richness (h2 > h3 by ~27 dB). low-frequency thickening at 150 Hz. transformer weight. |
switching characters during playback is click-free — WARM crossfades between characters over ~10ms.
character deep dive
the three characters aren't just EQ variations — each uses a fundamentally different waveshaping nonlinearity that generates a distinct harmonic profile.
tape
uses symmetric tanh(x) — the classic analog tape saturation curve. because it's symmetric, it generates only odd harmonics (3rd, 5th, 7th). this gives a warm, rounded quality without adding brightness. the post-processing stage adds a gentle low-pass at 12 kHz to simulate tape head loss.
tube
uses a bias-shifted sigmoid: tanh(x + 0.35) - tanh(0.35). the bias shift breaks the symmetry, making the positive half-cycle clip differently from the negative half. this naturally generates even harmonics — the 2nd harmonic sits about 6 dB above the 3rd. a 3 kHz presence boost adds the "tube forward" quality. this is the richest, most musical character.
transformer
uses tanh(x) + 0.15 * t * t — a quadratic term that adds pure even-harmonic asymmetry. the 2nd harmonic dominates at ~27 dB above the 3rd. combined with a 150 Hz low shelf boost, this gives weight and body — the transformer "iron" sound. best on bass, drums, and mix bus.
spectral display
the real-time spectral display shows:
- gold curve: your signal's frequency spectrum after saturation
- EQ nodes: 4 draggable nodes that control spectral pre-gain per frequency region
EQ nodes
- drag horizontally: move the node's center frequency
- drag vertically: adjust pre-gain for that frequency region
- mouse wheel on node: adjust Q (bandwidth)
- shift + drag: fine adjustment
- double-click: reset node to default
presets
WARM ships with 34 factory presets organized by character and use case.
tape presets
| preset | use case |
|---|---|
| Tape Gentle | subtle analog warmth |
| Tape Vocal | vocal chain saturation |
| Tape Drum Bus | drum bus glue |
| Tape Hot | driven tape — think Studer pushed hard |
tube presets
| preset | use case |
|---|---|
| Tube Warm | classic tube warmth with 2nd harmonic richness |
| Tube Vocal | tube mic pre character on vocals |
| Tube Crunch | driven tube for guitars and synths |
| Tube Bass | bass fattening with tube harmonics |
transformer presets
| preset | use case |
|---|---|
| XFMR Subtle | gentle transformer color |
| XFMR Bass | bass weight and body |
| XFMR Mix Bus | mix bus iron — console-style saturation |
| XFMR Heavy | heavy transformer saturation |
browsing
- use
< >arrows in the header to browse presets - the preset name is displayed between the arrows
- A/B button: compare two different settings instantly
how it works
WARM uses a 5-stage processing pipeline. no neural networks. no impulse responses. pure mathematics.
spectral pre-gain
STFT analysis splits the signal into frequency bins. the 4 EQ nodes let you boost or cut specific frequency regions before they hit the waveshaper — shaping what gets saturated.
drive computation
maps the DRIVE knob to a linear gain factor. an envelope follower modulates this with the input level — louder signals push the circuit harder, like real analog.
waveshaping (4x oversampled)
the signal is upsampled 4x, then processed through the per-character soft clipper followed by 7th-order Chebyshev polynomial evaluation. 4x oversampling pushes Nyquist to 88.2 kHz — no aliasing artifacts.
post-processing
DC blocking, HF compensation for oversampler rolloff, character-specific tonal shaping, and the TONE tilt EQ. all parameters are smoothed to prevent zipper noise.
K-weighted auto-compensation
loudness is matched between wet and dry using K-weighted RMS (ITU-R BS.1770). the saturated output never sounds louder — you hear the character, not the volume boost.
technical specifications
| spec | value |
|---|---|
| formats | VST3, AU (AUv3), standalone |
| platform | macOS (Apple Silicon native) |
| sample rates | 44.1 – 192 kHz |
| latency | ~93 ms at 44.1 kHz (4096 samples, STFT stage) |
| CPU target | < 3% at 44.1 kHz, 512-sample buffer |
| waveshaping order | 7th-order Chebyshev polynomials |
| oversampling | 4x (half-band polyphase IIR) |
| characters | 3 (tape, tube, transformer) |
| harmonic control | 7 independent coefficients per character |
| auto-compensation | K-weighted RMS (ITU-R BS.1770) |
| presets | 34 factory presets |
| DRM | none. no iLok. no account. no activation. |
installation
- download the installer from kernaudio.io
- copy
KERN WARM.vst3to~/Library/Audio/Plug-Ins/VST3/ - copy
KERN WARM.componentto~/Library/Audio/Plug-Ins/Components/ - open your DAW, scan for new plugins
- find "KERN WARM" under manufacturer: "KERN Audio"
no activation required. no account needed. just install and use.
quick start recipes
"i want analog warmth on my vocal"
- select TUBE character
- set DRIVE to 6–8 dB
- keep MIX at 50–70% for parallel saturation
- the 2nd harmonic adds body without harshness
"my drums need more weight"
- select XFMR character
- DRIVE at 8–12 dB
- the low-frequency thickening at 150 Hz adds weight
- use DELTA to verify you're adding harmonics, not distortion
"i want subtle tape warmth on the mix bus"
- select TAPE character
- DRIVE at 3–5 dB (subtle)
- MIX at 40–60%
- TONE slightly negative for a darker, vintage feel
"my bass needs tube saturation"
- select TUBE character
- DRIVE at 10–14 dB
- use EQ nodes to boost the low-mid region (100–400 Hz) before saturation
- the even harmonics fill out the bass without muddying the low end
tips
- DELTA reveals everything. toggle it to hear only the harmonics WARM is adding. if you hear the original signal, something's wrong.
- TUBE for vocals, XFMR for bass. tube's 2nd harmonic adds musical richness. transformer's deep even harmonics add weight and body.
- TAPE for everything else. symmetric saturation is the safest — warm without changing the harmonic balance.
- parallel saturation works. MIX at 30–60% lets you add color without overdriving the signal.
- ODD toggle for cleaner saturation. suppresses even harmonics when you want warmth without changing the harmonic balance.
- auto-compensation means honest comparisons. A/B with bypass — the volume is matched, so you hear character, not loudness.
- spectral pre-gain is powerful. use the EQ nodes to target specific frequencies for saturation. boost the region you want colored.
troubleshooting
| problem | solution |
|---|---|
| "all three characters sound the same" | increase DRIVE above 6 dB. at very low drive, all three converge to nearly linear. the differences are most audible at moderate to high drive. |
| "it sounds harsh" | reduce DRIVE. try TONE negative. try TAPE character (gentlest). use MIX at 40–60% for parallel processing. |
| "i hear clicking when switching characters" | this shouldn't happen — WARM crossfades over ~10ms. if you hear clicks, try restarting the plugin. |
| "DELTA sounds like the original signal" | the signal is very clean and WARM isn't adding much. increase DRIVE to hear the harmonics in DELTA mode. |
| "CPU is too high" | WARM targets <3% at 44.1 kHz with 4x oversampling. at higher sample rates, CPU increases proportionally. |
| "plugin doesn't appear in DAW" | rescan plugins in your DAW. check that VST3/AU files exist in ~/Library/Audio/Plug-Ins/. |
keyboard / mouse reference
| action | control |
|---|---|
| adjust knob | click + drag vertically |
| fine adjust knob | shift + drag |
| reset knob to default | double-click knob |
| move EQ node frequency | drag horizontally |
| adjust EQ node gain | drag vertically |
| adjust EQ node Q | mouse wheel on node |
| fine adjust EQ node | shift + drag |
| reset EQ node | double-click node |
| browse presets | click < > arrows |
| toggle A/B comparison | click A/B button |
| toggle delta mode | click DELTA button |
| toggle ODD mode | click ODD button |
| switch character | click TAPE / TUBE / XFMR pills |
version history
v0.9.0 (february 2026) — pre-release
- 5-stage processing pipeline (STFT pre-gain, drive computer, Chebyshev waveshaper, post-processing, auto-compensation)
- 3 saturation characters with per-character asymmetric soft clippers
- 7th-order Chebyshev polynomial waveshaping via Clenshaw recurrence
- 4x oversampling (half-band polyphase IIR)
- program-dependent drive modulation (envelope follower)
- K-weighted auto-compensation (ITU-R BS.1770)
- HF compensation for oversampler rolloff
- click-free character crossfade (~10ms)
- zipper-free parameter smoothing (drive, tone, mix)
- real-time spectral display with 4 EQ nodes
- 34 factory presets
- 48 automated tests (351 assertions)
design & development: Jonas Rosbech. algorithm based on published research by Giampiccolo (DAFx 2023), La Pastina & D'Angelo (DAFx 2022), Chowdhury (DAFx 2020), Parker (DAFx 2016), Temme et al. (AES 2013), Enderby & Stables (DAFx 2017), ITU-R BS.1770-5.