ποΈ Harsh Filter
A Filter That Fights Back β Resonance, Drive, and Self-Oscillation
- audio
- filtered_audio
Most filters are polite: they quietly roll off the top end and get out of your way. HarshFilter is not one of those. It's the node you reach for when you want a filter that screams - with resonance up to 0.999, a drive stage that distorts, and filter types like comb, morph, and "chaos" that go well beyond lowpass/highpass. The name isn't a warning, it's a promise.
What it does
It's an extreme filter with eight filter_types. The familiar four - lowpass, highpass, bandpass, notch - are there, and then it gets weird: comb (a series of equally-spaced resonant peaks, that metallic robot-wasp sound), allpass (phase warping that colors without cutting), morph (interpolates between filter types over time), and chaos (filter behavior driven by chaotic modulation - the closest thing to an unpredictable instrument).
The cutoff_freq (10β20000 Hz) is your main sculpting dial. resonance goes to 0.999 - that's self-oscillation territory, where the filter starts generating its own tone regardless of input. Crank it on a comb or bandpass and feed it noise, and you get a screaming, whining texture that's pure harsh-noise gold.
How it works
On top of the filter core there's a drive stage with five drive_modes - clean, tube, transistor, digital, and chaos - and a drive amount (0β5) that pushes the signal into saturation before or inside the filter. filter_slope (0.5β4) sets how steep the roll-off is; higher slopes cut harder and resonate more sharply. morph_amount (0β1) drives the morph/chaos modes, and the modulation_rate/modulation_depth pair sweeps the cutoff over time - slow for evolving drones, fast for the warbly alien stuff. stereo_spread widens the result, and wet_dry_mix (default 1.0) lets you blend the processed signal against the dry input.
The inputs that matter
filter_typeandcutoff_freq- the identity of the sound.resonance- the character dial. Below 0.5 it's tame; past 0.9 it starts to sing on its own.driveanddrive_mode- how much grit rides on top.
Output: filtered_audio, ready for the next stage of destruction.
Install
Same as every node in the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/eg0pr0xy/comfyui_noisegen.git
cd comfyui_noisegen
pip install -r requirements.txt
(Windows embedded Python: ComfyUI\python_embeded\python.exe -m pip install -r requirements.txt.) Or ComfyUI Manager β search "NoiseGen" / eg0pr0xy. No model files, no keys.
Gotchas
Self-oscillation sounds great until it deafens you. At resonance 0.999, the filter generates a continuous tone at the cutoff frequency that is loud - drop the amplitude before you max the resonance, or start your exploration with a quiet NoiseGenerator feeding it. And the pack rule applies: the pip install isn't optional, because scipy is imported at module load and the whole pack refuses to register without it. If you see the node, your install is already correct.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | Input audio for extreme filtering | |
| filter_type | COMBO | lowpass | 8 options: lowpass, highpass, bandpass, notch, comb, allpass, +2 |
| cutoff_freq | FLOAT | 100010β20000 | β |
| resonance | FLOAT | 0.3000β0.999 | β |
| drive | FLOAT | 0.200β5 | β |
| drive_mode | COMBO | tube | 5 options: clean, tube, transistor, digital, chaos |
| filter_slope | FLOAT | 1.00.5β4 | β |
| morph_amount | FLOAT | 0.000β1 | β |
| modulation_rate | FLOAT | 0.5000.001β50 | β |
| modulation_depth | FLOAT | 0.100β1 | β |
| amplitude | FLOAT | 0.800β2 | β |
| wet_dry_mixopt | FLOAT | 1.000β1 | β |
| stereo_spreadopt | FLOAT | 0.000β1 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| filtered_audio | AUDIO | β |