Nodes/ComfyUI-NoiseGen/πŸ”¬ Audio Analyzer
ComfyUI Node

πŸ”¬ Audio Analyzer

The Metering Node That Turns Your Ears Into Numbers

By eg0pr0xyΒ·Created about a year agoΒ·Updated about a year agoΒ· 1
πŸ”¬ Audio Analyzer
  • audio
  • audio
  • analysis_report
  • rms_level
  • peak_level
  • spectral_centroid
  • dynamic_range
β—„analysis_modecomprehensiveβ–Ί
β—„frame_size2048β–Ί
β—„overlap_factor0.5β–Ί
β—„window_typehannβ–Ί
β—„frequency_bands8β–Ί
β—„smoothing_factor0.30β–Ί
β—„threshold_db-60β–Ί
β—„enable_visualizationfalseβ–Ί

SpectrumAnalyzer tells you about frequencies. AudioAnalyzer is its sibling with a different obsession: loudness and dynamics. It's the node that gives you RMS, peak level, spectral centroid, and dynamic range as actual FLOAT outputs you can read off the screen or feed into something else. If SpectrumAnalyzer is the oscilloscope, this is the multimeter.

What it does

You feed it an audio input, it analyzes the whole thing, and it hands you four numeric outputs plus a text report: rms_level, peak_level, spectral_centroid, and dynamic_range. The audio passes through untouched, so you can drop it inline at the end of your chain without altering the sound - it's a measurement tap, not a processor.

The analysis_mode dropdown picks how thorough the run is: basic, spectral, dynamic, or comprehensive. Basic is RMS and peak. Spectral adds centroid and band analysis. Dynamic focuses on the dynamics. Comprehensive runs everything. If you're just checking "is my noise wall going to blow someone's speakers," basic is enough.

How it works

The analysis is frame-based, same idea as the spectrum node: audio is cut into frames of frame_size (512–4096 samples) with overlap_factor, each frame gets a window_type applied, and measurements are taken per frame then smoothed by smoothing_factor (0 = instant, 0.9 = very smooth). The frequency_bands control (4 to 32) sets how granular the band breakdown in the report is - more bands, finer resolution, longer report.

The threshold_db (default βˆ’60 dB) is the noise floor cutoff for what counts as "signal" in the dynamics math. If your material is quiet and the numbers look dead, try raising it - or lowering it if silence is being counted as part of the signal.

What you'll actually use

  • rms_level and peak_level - your loudness reality check. If peak is hovering at 1.0 and you're still adding gain upstream, you're clipping.
  • spectral_centroid - the "brightness" number. High centroid = harsh and bright; low = dark and muffled. Great for A/B-ing two filter settings without trusting your ears alone.
  • analysis_report - a STRING with the full breakdown. Pair it with a text-display node and you get a readout right in the graph.

Install

Identical to the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/eg0pr0xy/comfyui_noisegen.git
cd comfyui_noisegen
pip install -r requirements.txt

(Windows: ComfyUI\python_embeded\python.exe -m pip install -r requirements.txt.) Or ComfyUI Manager β†’ search "NoiseGen" / eg0pr0xy. No models or keys. Restart ComfyUI afterward.

Gotchas

One honest caveat: the enable_visualization toggle exists, but in the shipped code it's a stub - enabling it just logs that plots would be generated. The real output is the report string and the four FLOATs, so don't go hunting for pretty graphs in this node; that's what the FLOAT outputs are for. And remember the pack-level rule: don't skip pip install, since scipy is imported at load and a missing install takes the whole pack down with it.

Category🎡 NoiseGen/Utility

Inputs (9)

NameTypeDefaultDescription
audioAUDIOInput audio for analysis
analysis_modeCOMBOcomprehensive4 options: basic, spectral, dynamic, comprehensive
frame_sizeCOMBO20484 options: 512, 1024, 2048, 4096
overlap_factorFLOAT0.50–0.9β€”
window_typeCOMBOhann4 options: hann, hamming, blackman, rectangular
frequency_bandsINT84–32Number of frequency bands for analysis
smoothing_factorFLOAT0.300–0.9Analysis smoothing (0=instant, 0.9=very smooth)
threshold_dboptFLOAT-60-120–0β€”
enable_visualizationoptBOOLEANfalseβ€”

Outputs (6)

NameTypeDescription
audioAUDIOβ€”
analysis_reportSTRINGβ€”
rms_levelFLOATβ€”
peak_levelFLOATβ€”
spectral_centroidFLOATβ€”
dynamic_rangeFLOATβ€”