Nodes/ComfyUI_MusicTools/Music - Compressor
ComfyUI Node

Music - Compressor

The Two-Knob Compressor That Won't Let You Break It

By jeankassio·Created 9 months ago·Updated a day ago· 154
Music - Compressor
  • audio
  • AUDIO
threshold0.50
ratio4.0

Compression is the tool everyone needs and nobody wants to configure. Real compressors have attack, release, knee, makeup gain and three more knobs that all interact, and the failure mode is spending an hour making it worse. Music - Compressor from ComfyUI Music Tools strips that down to the two parameters that matter most: threshold and ratio. That's it.

  • threshold (0–1, default 0.5) - the level at which compression starts grabbing. Below it, audio passes untouched; above it, gain reduction kicks in.
  • ratio (1–16, default 4) - how hard it grabs. 1:1 is no compression, 4:1 is a solid bus glue, 16:1 is basically a limiter.

One AUDIO in, one AUDIO out. The compression is stereo-linked, which matters more than it sounds: linked compression keeps the stereo image stable while it pumps the level, so you don't get the image collapsing inward on loud hits that unlinked channels cause.

How to think about it

The threshold in normalized 0–1 scale maps to the audio's peak level (1.0 = full scale). Defaults of 0.5/4 are a genuinely sane place to start for taming a track's dynamics before loudness normalization - this is the "make the quiet parts louder by making the loud parts quieter" move, which is exactly what generated audio needs, since AI renders tend to have lumpy dynamics.

A practical knob flow:

  1. Start threshold at 0.5, ratio at 4.
  2. If the track is already pretty even, lower the ratio to 2 - over-compressing a clean source is how you get the lifeless, squashed sound.
  3. If the track is wild (big swings between verse and chorus), lower the threshold toward 0.3 so more of it gets grabbed.

Then follow it with Music - LUFS Normalizer, because compression frees up headroom that loudness normalization can actually use. That pairing (compress, then normalize) is the canonical "make it loud without making it clip" recipe, and it's exactly the sequence the pack's own master chain uses internally.

The honest take

This is a utility node, not a character compressor. No attack/release controls (it uses sensible fixed timing), no makeup gain (the node handles output level), no multiband. If you want a "warm" or "punchy" box, this isn't it. What it is: a zero-fiddling compressor that does the one job - even out the level so the next stage can work - without a single parameter that can bite you. For a pack aimed at "make my generated audio sound finished," that's the right design.

Worth knowing: a compressor at ratio 16 with a low threshold is a poor man's limiter, and the pack does have a proper true-peak limiter inside its mastering chain. If your real goal is "never clip," use the master node or Music Fix, which put the limiter after loudness management where it belongs.

Install

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/jeankassio/ComfyUI_MusicTools.git
cd ComfyUI_MusicTools
python -m pip install -r requirements.txt

Restart, find it under music. Pure NumPy/SciPy dynamics processing - no models, no GPU.

Categorymusic

Inputs (3)

NameTypeDefaultDescription
audioAUDIO
thresholdFLOAT0.500–1
ratioFLOAT4.01–16

Outputs (1)

NameTypeDescription
AUDIOAUDIO