Nodes/RyanOnTheInside/Frequency Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
ComfyUI Node

Frequency Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜

Define the audio bands the rest of the pack reacts to

By ryanontheinsideΒ·Created 2 years agoΒ·Updated 5 months agoΒ· 852
Frequency Range βš‘πŸ…‘πŸ…žπŸ…£πŸ…˜
  • previous_range
  • FREQUENCY_RANGE
β—„low_cutoff20β–Ί
β—„high_cutoff20000β–Ί
β—„order4β–Ί

If you've ever wanted a ComfyUI effect that reacts to the bass hits specifically, or only the vocal range, this is the node that draws that line. Frequency Range doesn't process any audio itself - it just declares a band: "everything between this Hz and that Hz." That band definition is then what other audio-analysis nodes in this pack read when they extract a feature, so this is a definition step, not an effect step.

How it works

A single Frequency Range node holds three numbers - low_cutoff, high_cutoff, and a filter order - describing one bandpass window, in Hertz. On its own that's already usable. But most real setups want more than one band (bass, mids, presence, whatever your source demands), which is what previous_range is for: chain a second Frequency Range node's previous_range input to a first one's output, and you build up a small list of bands as one combined FREQUENCY_RANGE object, the same way you'd cons a linked list. Downstream audio nodes in this pack pull from that list to know what part of the spectrum to pay attention to.

order is worth understanding even at default: it's the steepness of the filter's rolloff at the edges of your band, in the standard signal-processing sense - higher order means a sharper cutoff (less bleed from frequencies just outside your range) at the cost of more computation and, at extremes, more ringing artifacts. For most creative audio-reactive work the default of 4 is a reasonable middle ground; you rarely need to push it unless you're chasing a very surgical isolation.

Inputs and outputs

  • low_cutoff (default 20Hz) and high_cutoff (default 20000Hz) - the band's edges. The defaults span the full audible range, so a fresh node does effectively nothing until you narrow it - set something like 20–250Hz for a bass/kick-focused band, or 2000–8000Hz to catch vocal presence and consonants.
  • order - filter steepness, 1 to 10.
  • previous_range (optional) - chain in an earlier Frequency Range node to append this band to a running list rather than replace it.
  • Output - a FREQUENCY_RANGE object, which feeds into whichever of this pack's audio-feature or filter-building nodes you're targeting next.

Installing it

Search RyanOnTheInside in ComfyUI Manager, or install manually:

cd ComfyUI/custom_nodes
git clone https://github.com/ryanontheinside/ComfyUI_RyanOnTheInside

Then pip install -r requirements.txt inside the pack's folder and restart ComfyUI. The audio-analysis side of this pack depends on librosa, so this step isn't optional cosmetic advice - skip it and the audio nodes simply won't import.

Common issues

The most common beginner mistake is leaving the defaults untouched and wondering why "the audio-reactive band" node isn't doing anything distinctive - a 20Hz–20000Hz range covers the whole spectrum, so it's not isolating anything until you actually narrow the cutoffs to the band you care about.

The other thing to watch: this node's output type (FREQUENCY_RANGE) is specific to this pack's own audio-band family. It isn't interchangeable with every audio-adjacent input you'll see elsewhere in the pack - check that whatever node you're wiring it into is actually expecting a FREQUENCY_RANGE before assuming the connection should work. If ComfyUI won't let you make the link, that's the type system telling you the two nodes don't talk to each other directly, not a bug.

CategoryRyanOnTheInside/Audio/FrequencyBands

Inputs (4)

NameTypeDefaultDescription
low_cutoffFLOAT2020–20000Lower cutoff frequency (20 to 20000 Hz)
high_cutoffFLOAT2000020–20000Upper cutoff frequency (20 to 20000 Hz)
orderINT41–10Filter order (1 to 10)
previous_rangeoptFREQUENCY_RANGEPrevious frequency range to append to (optional)

Outputs (1)

NameTypeDescription
FREQUENCY_RANGEFREQUENCY_RANGEβ€”