π‘ Band Limited Noise
White Noise With a Lease on Life β Squeeze It Into Any Frequency Band
- audio
White noise is boring because it's everywhere at once. BandLimitedNoise fixes that by putting a fence around it: you pick a low and high frequency, and you get noise that lives only inside that band. It's the same trick that makes static-on-a-telephone-line sound different from ocean waves - it's all just filtered noise. This node is the standalone, dedicated version of the bandlimited option buried inside NoiseGenerator.
What it's for
Band-limited noise is a sound designer's Swiss Army knife. Crank low_frequency up toward 1β2 kHz and you get the harsh, telephonic hiss that sits perfectly under dialogue or cuts through a mix. Keep it down around 100β200 Hz and you get a rumble bed with no annoying top end. Tighten the band - say 500 to 900 Hz - and filtered noise starts to behave almost like a tone, which is exactly what you want for tuning a resonant texture. If you're building an evolving drone, this is often the better starting point than full-spectrum white.
How it works
The mechanism is straightforward and honest: it generates white noise, then runs it through a 4th-order Butterworth band-pass filter with signal.filtfilt - which filters in both directions, so there's no phase lag and no startup transient. That's why band-limited noise from this node sounds clean and stable rather than like a filter hiccup at the start. low_frequency and high_frequency define the pass band, and the node guards against inverted or out-of-range values so you can't accidentally feed it nonsense.
One thing to know: high_frequency can go up to 20000 but it's clamped at the Nyquist limit for your sample rate. At the default 44100 Hz that's fine - you have the whole audible range. At 8000 Hz (the lowest sample rate option) there's no room for anything above 4 kHz anyway, so the top end of the band silently shrinks. Match the sample rate to your content.
The inputs that matter
low_frequency/high_frequency- the entire point. Defaults are 100 and 8000, a decent "broad band" starting point.duration- 0.1 to 300 seconds.sample_rate- 8000 to 96000. Higher is more headroom and better fidelity; lower is cheaper and often fine for noise.amplitude- 0.8 default, max 2.0 (clipping territory above 1.0).seed- defaults to 0, meaning the same noise every run. Change it for variation.
One output: audio, ready to wire into a HarshFilter or FeedbackProcessor.
Install
Same as the whole 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.) ComfyUI Manager also has it - search "NoiseGen" or the author eg0pr0xy. No model files, no keys. Restart after installing.
Gotchas
Two things. The pip install isn't decorative - scipy is imported at module load, so skipping it takes the whole pack offline, and this node is pure scipy under the hood. And remember the seed: if every take sounds identical, it's because seed 0 is the default, not because you broke something. Bump the seed, hear the difference, and save yourself ten minutes of head-scratching.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| duration | FLOAT | 5.00.1β300 | β |
| low_frequency | FLOAT | 1001β20000 | β |
| high_frequency | FLOAT | 80001β20000 | β |
| sample_rate | COMBO | 44100 | 6 options: 8000, 16000, 22050, 44100, 48000, 96000 |
| amplitude | FLOAT | 0.800β2 | β |
| seed | INT | 00β2147483647 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | β |