You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a "Graaawl" mode that imparts the characteristic Warwick Thumb 5 growl onto the low band — the woody, aggressive, vocal-like grind — while the low end stays tight and powerful. Opt-in; default OFF (the clean/compressed low band remains the default).
Key DSP insight (why not just "distort the lows")
The Warwick growl is not low-frequency distortion. It is an asymmetric upper-mid harmonic character (~700 Hz – 2.2 kHz) with a formant-like resonance around ~1 kHz. Distorting the sub-fundamental directly produces intermodulation mud and flabby low end — the opposite of the Thumb. So the growl must be band-limited and sub-preserving: the fundamental is never distorted; the growl is generated in parallel and blended on top.
Proposed signal design (low band)
Inserted in the low path after the low-band compressor, before lowLevel (predictable growl amount; comp keeps the lows tight). Parallel harmonic branch:
Copy the low-band signal; high-pass the copy at ~300–400 Hz so only the upper part of the low band feeds the shaper — the sub stays clean.
Asymmetric waveshaper (tanh + asymmetry/DC-bias term) → generates even harmonics (woody/vowel) and odd harmonics (grind). Asymmetry is the core of the Thumb character.
Band-pass to the growl formant region (~700 Hz – 2.2 kHz) with a mild resonant peak (~1 kHz) for the "graaawl" vowel.
Oversample the shaper path (2–4×) to avoid aliasing (reuse the M3 juce::dsp::Oversampling framework; report added latency via the M1 latency framework, Latency compensation framework #9).
Blend the harmonic content back onto the clean low band, scaled by the growl amount. Dry sub-fundamental untouched → lows stay tight.
Proposed parameters (added to the frozen APVTS layout; new IDs only — no existing IDs change)
Ship sensible starting values only. Final voicing — waveshaper asymmetry, formant center/Q, HP corner, oversample factor — is tuned by ear against a real Warwick Thumb 5 DI. Do not finalize the curve by math alone.
Acceptance criteria
lowGrowl + lowGrowlAmount in APVTS, default OFF, state round-trips (test)
With growl OFF: low band is bit-identical to current behaviour (regression test)
With growl ON: sub band (below ~150 Hz) THD stays negligible — growl energy concentrated in ~700 Hz–2.2 kHz (spectral test)
Shaper path oversampled; added latency reported and null-compensated
pluginval strictness 10 + auval pass
Yves ear-tuning sign-off against a Thumb 5 reference DI
Note on placement
Implemented as a low-band growl mode per the request ("die clean Lows knurren lassen"). Alternative considered: a 4th high-band voicing named "Graaawl" alongside Gnaw/Wool/Razor — rejected because the request is specifically about the low band, and a sub-preserving low-band growl is the more distinctive, Thumb-faithful result.
Sound goal
Add a "Graaawl" mode that imparts the characteristic Warwick Thumb 5 growl onto the low band — the woody, aggressive, vocal-like grind — while the low end stays tight and powerful. Opt-in; default OFF (the clean/compressed low band remains the default).
Key DSP insight (why not just "distort the lows")
The Warwick growl is not low-frequency distortion. It is an asymmetric upper-mid harmonic character (~700 Hz – 2.2 kHz) with a formant-like resonance around ~1 kHz. Distorting the sub-fundamental directly produces intermodulation mud and flabby low end — the opposite of the Thumb. So the growl must be band-limited and sub-preserving: the fundamental is never distorted; the growl is generated in parallel and blended on top.
Proposed signal design (low band)
Inserted in the low path after the low-band compressor, before
lowLevel(predictable growl amount; comp keeps the lows tight). Parallel harmonic branch:juce::dsp::Oversamplingframework; report added latency via the M1 latency framework, Latency compensation framework #9).Proposed parameters (added to the frozen APVTS layout; new IDs only — no existing IDs change)
lowGrowl— bool, "Graaawl" enable, default falselowGrowlAmount— 0..100 %, default 0 (display), suggested musical start ~40lowGrowlTone— tilt/formant focus, 0..100 %, default 50Internal IDs stay clean identifiers; the display name is "Graaawl" (elongated a's in the UI label are fine).
Dependencies
Tuning gate (project convention: voicing = listening decision)
Ship sensible starting values only. Final voicing — waveshaper asymmetry, formant center/Q, HP corner, oversample factor — is tuned by ear against a real Warwick Thumb 5 DI. Do not finalize the curve by math alone.
Acceptance criteria
lowGrowl+lowGrowlAmountin APVTS, default OFF, state round-trips (test)Note on placement
Implemented as a low-band growl mode per the request ("die clean Lows knurren lassen"). Alternative considered: a 4th high-band voicing named "Graaawl" alongside Gnaw/Wool/Razor — rejected because the request is specifically about the low band, and a sub-preserving low-band growl is the more distinctive, Thumb-faithful result.