Frequency Range β‘π ‘π π £π
Define the audio bands the rest of the pack reacts to
- previous_range
- FREQUENCY_RANGE
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) andhigh_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_RANGEobject, 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.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| low_cutoff | FLOAT | 2020β20000 | Lower cutoff frequency (20 to 20000 Hz) |
| high_cutoff | FLOAT | 2000020β20000 | Upper cutoff frequency (20 to 20000 Hz) |
| order | INT | 41β10 | Filter order (1 to 10) |
| previous_rangeopt | FREQUENCY_RANGE | Previous frequency range to append to (optional) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FREQUENCY_RANGE | FREQUENCY_RANGE | β |