Nodes/ComfyUI-NoiseGen/πŸ“‘ Band Limited Noise
ComfyUI Node

πŸ“‘ Band Limited Noise

White Noise With a Lease on Life β€” Squeeze It Into Any Frequency Band

By eg0pr0xyΒ·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸ“‘ Band Limited Noise
    • audio
    β—„duration5.0β–Ί
    β—„low_frequency100β–Ί
    β—„high_frequency8000β–Ί
    β—„sample_rate44100β–Ί
    β—„amplitude0.80β–Ί
    β—„seed0β–Ί

    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.

    Category🎡 NoiseGen/Generate

    Inputs (6)

    NameTypeDefaultDescription
    durationFLOAT5.00.1–300β€”
    low_frequencyFLOAT1001–20000β€”
    high_frequencyFLOAT80001–20000β€”
    sample_rateCOMBO441006 options: 8000, 16000, 22050, 44100, 48000, 96000
    amplitudeFLOAT0.800–2β€”
    seedINT00–2147483647β€”

    Outputs (1)

    NameTypeDescription
    audioAUDIOβ€”