Nodes/ComfyUI-NoiseGen/πŸ”¬ Spectral Processor
ComfyUI Node

πŸ”¬ Spectral Processor

Surgery in the Frequency Domain β€” Ten Spectral Effects in One Node

By eg0pr0xyΒ·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸ”¬ Spectral Processor
  • audio
  • processed_audio
β—„spectral_modeenhanceβ–Ί
β—„fft_size2048β–Ί
β—„overlap_factor0.75β–Ί
β—„window_typehannβ–Ί
β—„frequency_range_low100β–Ί
β—„frequency_range_high8000β–Ί
β—„intensity0.50β–Ί
β—„amplitude0.80β–Ί
β—„wet_dry_mix1.00β–Ί
β—„phase_randomization0.00β–Ί

Normal audio processing happens sample by sample. Spectral processing is different: the audio gets transformed into the frequency domain, operated on there, and transformed back. That's how you get effects that sound like the audio's guts are being rearranged - and it's exactly what SpectralProcessor does, with ten modes. It's the most sci-fi node in the pack.

What it does

You feed in audio and get back processed_audio (plus, implicitly, whatever the FFT analysis says - the node is built on the same frame-based FFT engine as the analyzer nodes). The spectral_mode dropdown picks the operation:

  • enhance / suppress - boost or cut a chosen frequency region (set by frequency_range_low/high).
  • shift - move a band of frequencies up or down, the classic "spectral displacement" effect that makes things sound like a radio tuning through stations.
  • morph - blend the spectrum toward something else, good for transitions and alien textures.
  • gate - silence bins below a threshold, i.e., spectral noise reduction.
  • compress - tame the loudest bins, spectral compression.
  • chaos - scramble the spectral bins; pure digital weirdness.
  • phase - mess with phase relationships between bins, which audibly smears and widens things.
  • vocoder - the classic talkbox effect; use the frequency ranges as the filter banks.
  • freeze - hold the current spectrum in place, producing an endless shimmering drone from any moment of the audio.

How it works

The pipeline is the standard STFT dance: audio is sliced into overlapping frames of fft_size (512–8192), windowed with window_type, FFT'd, the chosen mode operates on the magnitude/phase of each bin, then the inverse FFT and overlap-add reconstruct the time-domain signal. overlap_factor (0.25–0.95) controls the frame overlap - more overlap means smoother, more artifact-free results at a higher compute cost. The optional phase_randomization (0–1) scrambles phase on the way out, which makes things sound grainier and more "spectral" in the hazy way, and wet_dry_mix blends the processed result with the original.

intensity (0–2) is the global strength of the effect, and the frequency_range_low/high controls scope the effect to a band - crucial, because running full-spectrum chaos on everything gets old fast.

The inputs that matter

  • spectral_mode - the identity. freeze and shift are the two you'll demo for friends.
  • frequency_range_low / frequency_range_high - target a band and the effect becomes musical instead of a mess.
  • intensity - how much of the effect you hear.

Install

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

The pack rule applies - pip install is mandatory, scipy is imported at load and takes the whole pack with it if missing. Bigger fft_size values give finer frequency resolution but worse time resolution: on percussive material a large FFT smears transients into mush, so match the FFT size to the material (2048 is a good default for most noise). And phase_randomization at high values turns almost anything into pure texture - great for noise, wrong for anything you want to stay recognizable.

Category🎡 NoiseGen/Process

Inputs (11)

NameTypeDefaultDescription
audioAUDIOInput audio for spectral processing
spectral_modeCOMBOenhance10 options: enhance, suppress, shift, morph, gate, compress, +4
fft_sizeCOMBO20485 options: 512, 1024, 2048, 4096, 8192
overlap_factorFLOAT0.750.25–0.95β€”
window_typeCOMBOhann5 options: hann, hamming, blackman, kaiser, rectangular
frequency_range_lowFLOAT10010–10000β€”
frequency_range_highFLOAT8000100–20000β€”
intensityFLOAT0.500–2β€”
amplitudeFLOAT0.800–2β€”
wet_dry_mixoptFLOAT1.000–1β€”
phase_randomizationoptFLOAT0.000–1β€”

Outputs (1)

NameTypeDescription
processed_audioAUDIOβ€”