AUDIO Frequency Band Analyzer @ vrch.ai
Slice mic input down to the frequency band you actually want
- raw_data
- ANALYSIS_DATA
- BAND_VOLUME
The AUDIO Frequency Band Analyzer @ vrch.ai is a narrow but useful tool: it measures the energy in one specific frequency range of your audio and hands you a single number for it. Feed it raw_data (the JSON from a Microphone Loader or similar source), tell it the low and high edge of the band you care about, and it returns BAND_VOLUME - how loud that band is right now - plus the full ANALYSIS_DATA JSON if you want the details.
That single-number output is the killer feature. In a realtime setup you almost never want "how loud is everything"; you want "is the kick drum thumping" or "is the singer mid-sentence." This node lets you carve out exactly the slice of the spectrum that carries the signal you're reacting to, and then wire that one float into your workflow. It's the difference between animations that pulse with the music and animations that flutter at everything.
How it works
The node takes raw_data, assumes a sample_rate (16k / 24k / 48k - match it to whatever your mic loader is using, or the math is wrong), and measures the energy between freq_min and freq_max. The defaults land it in the low-mids (200–500 Hz), which is a sensible place to start for a bass-ish or vocal-body presence reading. freq_min and freq_max both range 20–20000 Hz, so you can carve anywhere from a sub-bass thump (say 40–100 Hz) to a hi-hat tick (8k–12k).
Outputs:
- BAND_VOLUME (FLOAT) - the energy in your chosen band, the one number you'll actually wire somewhere.
- ANALYSIS_DATA (JSON) - the richer payload for anything that wants the full breakdown.
debug logs the band readings so you can sanity-check what you're measuring before you build a whole reaction system on top of it.
Installing it
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt
Or install "ComfyUI Web Viewer" from ComfyUI Manager and restart. No models, no extra dependencies.
Practical notes
The most common mistake is a sample-rate mismatch: set the node to 48k while the mic loader feeds it 16k data, and your band boundaries land somewhere other than you think. Keep both nodes on the same setting.
Second, remember it's a band filter, not a whole-song meter. If you want the overall level, use the mic loader's VOLUME output. The Band Analyzer earns its keep when you're chasing one instrument or one frequency signature. A classic chain: Mic Loader → Frequency Band Analyzer (set to the sub range) → float into a strength or scale parameter, so a bass drop visibly changes the output while everything else stays put.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| raw_data | JSON | — | |
| freq_min | INT | 20020–20000 | — |
| freq_max | INT | 50020–20000 | — |
| sample_rate | COMBO | 48000 | 3 options: 16000, 24000, 48000 |
| debug | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| ANALYSIS_DATA | JSON | — |
| BAND_VOLUME | FLOAT | — |