EQ
Manual Bands, or Let It Fit a Gentle Tone Match to Your Mix
- audio
- reference
- audio
- report
What it is
Plenio's EQ is a real parametric equaliser - up to eight bands with a live response curve - plus a tone-matching mode that does the fiddly part for you. It runs on the CPU in 64-bit float, which means the Enhance & Master path works on a machine with no GPU at all.
Two things make it more than a mixing toy. The first is that it's honest: there's no hidden normalisation, no auto-gain sneaking your level around while you're listening. The second is that the match mode is bounded. Its job is a gentle tilt, not a repair job - the pack's own preset library leads with "YuE2 – Smooth highs" and describes it as static tone shaping, not artifact repair. Believe that.
How it works
The mode picker decides everything:
- flat - no filtering at all. Bit-identical passthrough, by design. Useful as an explicit "off" when you're A/B-ing.
- manual - your bands, edited on the curve in the node's UI. They're stored as JSON (
plenio.eq/1) and validated: frequencies 20 Hz–20 kHz and at most 0.45× the sample rate, band gain ±12 dB, Q 0.2–10, shelf slope 0.25–1, pre-amp ±24 dB. - match preset - the pack's tone-match recipes: warm, bright and reference variants, from subtle mastering to broad match. The reference recipes need the optional
referenceinput connected. - custom match - you set the fit:
target(warm, bright or reference),strength(0–1, default 0.35),max_gain_db(default 2.0),max_bands(default 4), and the advanced frequency limitsmin_hz/max_hz(40 Hz to 16 kHz by default).
Under the hood, the filters are biquads from the RBJ Audio EQ Cookbook - peak, low/high shelf, low/high-pass and notch. Match mode measures the audio's long-term spectrum (1/6-octave smoothing) and compares it with a target: a gentle tilt around 1 kHz (±0.75 dB/octave for warm and bright, relative to your own audio, not to some absolute curve) or the spectrum of your reference recording with the level difference removed first. A least-squares fit then places up to max_bands peak filters, with strength scaling the correction and max_gain_db bounding the summed curve. The report shows you the error before and after - the closest thing to a receipt this kind of processing usually gets.
reference is audio in, so it comes from a Load Audio node with your chosen reference track. Matching against a reference is the most useful trick here and also the most misused: level-matched spectrum comparison is not "make my song sound like that song", and it won't fix arrangement, performance or a bad render.
Inputs and outputs
Required: audio (every item of a batch gets equalised) and mode. Optional: reference. Outputs: audio - same rate, same length - and report (mode, the applied bands, and the match result). The report is worth wiring into Export Release, so the release record shows what tone shaping a song actually got.
Install
# ComfyUI Manager → search "Plenio Music Production System" → Install → restart
# or:
cd ComfyUI/custom_nodes
git clone https://github.com/jplenio/Plenio-Music-Production-System
ComfyUI 0.37.0+, no Python packages installed by the pack. The 4 · Enhance & Master template is EQ → Loudness & Dynamics → Export with no GPU needed, which makes it the cheapest way to try this node on a file you already have.
Common issues
- A boost made it clip. EQ doesn't normalise, so raising a band raises the peak. Keep Loudness & Dynamics after it - the export will warn about samples above full scale, and that warning means exactly what it says.
- The match barely did anything. That's the design: default strength 0.35 and a 2 dB gain cap. Push both up if you want a firmer hand, and listen for it turning into a filter sweep.
- The curve on the node doesn't look like what you heard. It's the backend's computed response for the audio's rate, so it is what you hear - if you disagree, you're probably listening to the pre-EQ signal upstream.
- Reference match made it worse. Reference matching wants a genuinely comparable recording - same kind of material, similar density. A solo piano reference against a busy rock mix mostly tells the fitter to cut everything.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| audio | AUDIO | The audio to equalise (every item of a batch). | |
| mode | COMBO | flat: no change; manual: your bands; match: a proposal fitted to the audio. | |
| referenceopt | AUDIO | Reference recording for the 'reference' target. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | The equalised audio (same rate and length). |
| report | PLENIO_REPORT | Mode, the applied bands and the match result. |