Nodes/ComfyUI-NoiseGen/πŸŽ›οΈ Harsh Filter
ComfyUI Node

πŸŽ›οΈ Harsh Filter

A Filter That Fights Back β€” Resonance, Drive, and Self-Oscillation

By eg0pr0xyΒ·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸŽ›οΈ Harsh Filter
  • audio
  • filtered_audio
β—„filter_typelowpassβ–Ί
β—„cutoff_freq1000β–Ί
β—„resonance0.300β–Ί
β—„drive0.20β–Ί
β—„drive_modetubeβ–Ί
β—„filter_slope1.0β–Ί
β—„morph_amount0.00β–Ί
β—„modulation_rate0.500β–Ί
β—„modulation_depth0.10β–Ί
β—„amplitude0.80β–Ί
β—„wet_dry_mix1.00β–Ί
β—„stereo_spread0.00β–Ί

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_type and cutoff_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.
  • drive and drive_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.

Category🎡 NoiseGen/Process

Inputs (13)

NameTypeDefaultDescription
audioAUDIOInput audio for extreme filtering
filter_typeCOMBOlowpass8 options: lowpass, highpass, bandpass, notch, comb, allpass, +2
cutoff_freqFLOAT100010–20000β€”
resonanceFLOAT0.3000–0.999β€”
driveFLOAT0.200–5β€”
drive_modeCOMBOtube5 options: clean, tube, transistor, digital, chaos
filter_slopeFLOAT1.00.5–4β€”
morph_amountFLOAT0.000–1β€”
modulation_rateFLOAT0.5000.001–50β€”
modulation_depthFLOAT0.100–1β€”
amplitudeFLOAT0.800–2β€”
wet_dry_mixoptFLOAT1.000–1β€”
stereo_spreadoptFLOAT0.000–1β€”

Outputs (1)

NameTypeDescription
filtered_audioAUDIOβ€”