Equalizer
The Equalizer panel is a parametric EQ that works on loaded measurements: Peaking, Low Shelf and High Shelf bands with automatic preamp, AutoEQ against any target, per-channel bands, an in-browser audio preview, and filter import/export. Device PEQ pushes the result to hardware.
This page covers the behavior worth knowing in detail. For a walkthrough of the panel, see Equalizing audio; operators can set defaults under EQUALIZER.
The Equalizer toggle
Section titled “The Equalizer toggle”Nothing in the panel reaches the graph or the audio player until the master Equalizer switch at the top of the panel is on. Actions that only make sense with EQ live turn it on for you:
- Importing a filter file
- Running AutoEQ
- Pulling filters from a connected device (Hardware EQ)
- Adding the first band to an empty filter list
Editing bands you already have does not touch the switch. Turning EQ off to compare against the raw curve while you tweak is a deliberate workflow — hold \ for a momentary A/B flip in either direction — so nothing re-enables it under you.
Per-channel EQ
Section titled “Per-channel EQ”At the top of the filter list is a Channel switch with three positions — L+R, L and R. It chooses which bands the list below is editing:
- L+R — shared bands. They apply to both ears, which is how every EQ behaved before this existed, and it preserves whatever channel imbalance the unit has.
- L / R — bands for that ear alone, stacked on top of the shared ones.
The count beside each label is how many bands live in that bucket. While scoped to one ear the list shows only that ear’s bands, with a line underneath reporting how many shared bands also reach it. A band’s Applies to control (expand the band to see it) moves it between buckets.
What each ear actually plays is shared + that ear’s own bands. The preamp is a single number sized for whichever ear needs the most headroom, and the on-graph average is recomputed as the mean of the two equalized channels — so a left-only correction visibly moves the average too.
Two things to know:
- AutoEQ follows the switch. In L+R it optimizes against the average, preserving the unit’s natural imbalance. Scoped to one ear it optimizes against that ear’s measurement and replaces only that bucket, leaving the shared bands and the other ear alone. Running it once per ear is how you correct imbalance and match a target at the same time.
- Hardware EQ is shared-only. Hardware EQ slots have no channel concept, so pushing to a device sends the shared bands and warns you about the left/right bands it had to skip. The graph, the audio preview and file export all carry the full per-channel EQ.
See Equalizing audio for the workflow.
EQ constraints
Section titled “EQ constraints”An EQ constraint limits the band list to what a particular EQ engine accepts — a DAC’s hardware EQ, a music player’s equalizer, a fixed 10-band graphic EQ. The constraint button at the end of the band list’s toolbar picks one:
- Built-in — Default (unlimited), which constrains nothing, and a generic 10-band graphic EQ.
- Connected device — the device Hardware EQ is connected to, while it is.
- Recently picked, Software EQs and Hardware — profiles from eqcaps, an open database of EQ limits, for planning an EQ for an app or a device you don’t have plugged in. Profiles not yet checked against the real thing are marked draft. The database is fetched the first time the picker opens; the built-ins work without it.
A constraint can do more than cap the band count. Each band slot has its own filter types and its own frequency, Q and gain range — a device whose first band is a low shelf from 20 to 300 Hz, say — and ranges can be stepped (gain in 0.5 dB steps) or a list of allowed values. The band list follows the slot each band sits in: number boxes and sliders span its range and step by its grid, only its filter types are offered, and a value it fixes is shown read-only. Hover a box to see what is allowed.
- Picking a constraint folds the bands onto it, as one undoable step: values move to the nearest allowed ones and bands past the cap are dropped. A graphic EQ always gets one row per band.
- Connecting a device doesn’t touch the bands. Whatever the device can’t hold is marked, and Fit in the bar above the list folds them when you choose to.
- Editing snaps each value onto what its slot allows, as you type or drag.
- While a constraint is active, a bar above the band list names it; its × returns to unlimited.
Importing a filter file switches back to Default (unlimited) first, so the file lands as written.
AutoEQ band count
Section titled “AutoEQ band count”Run AutoEQ generates as many bands as the filter list already holds, so adding five bands before running is how you ask for a five-band result. With an empty list it falls back to 8 bands.
Operators can change that fallback with EQUALIZER.AUTOEQ_DEFAULT_BAND_COUNT — see
Customizing the Page. Either way, the active
constraint’s band cap wins: a connected 5-band device gets 5, and a constraint
with no cap at all is held to 32. AutoEQ also stays inside the constraint’s frequency, Q and gain
ranges, gives the shelves their own gain range where the constraint does, and leaves the shelves
out where it has no slot for them.
The count is the total. With Use shelf filters on, two of those bands are the low and high shelf: ten bands is eight peaking filters plus the pair. Below four bands the shelves are dropped, because spending the whole budget on them corrects nothing but overall tilt.
Auto-apply
Section titled “Auto-apply”Once a run lands, Run AutoEQ becomes Recalculate, and the Auto-apply switch beside it keeps the result current. While it is on, AutoEQ runs again whenever the source or target curve changes — a tilt or bass shelf from the target customizer, say — or when an AutoEQ option does. Switching it on runs once straight away.
- It re-runs with the band count and channel it was switched on with. Scoping the list to one ear doesn’t change what it fits; to change the band count, add or remove bands and press Recalculate.
- The re-runs fold into one undo entry, so a single undo returns to the filters from before AutoEQ.
- An auto-applied run leaves the Equalizer toggle alone, so you can switch EQ off to compare while nudging the target.
- It keeps running from other panels, which is how you tilt a target in the Graph panel and watch the EQ follow.
It switches itself off, and says why, rather than overwrite something it can no longer vouch for:
- the filters are edited by hand — adding, removing or dragging a band, undo, import, or a History & Compare switch;
- a different source device or target is selected, or the target is removed;
- the EQ preset changes;
- the fallback optimizer answered (see The optimizer). It is too slow to follow every change, so the switch stays unavailable until a run succeeds with turboEQ.
The optimizer
Section titled “The optimizer”AutoEQ runs turboEQ, a WebAssembly port of AutoEq’s optimizer, which fits every filter at once. A run with the default eight bands takes a few milliseconds, over a hundred times faster than the optimizer it replaced, and returns exactly the bands it was asked for. See AutoEQ Benchmarks for measurements against CrinGraph and AutoEq itself.
Fit mode
Section titled “Fit mode”Exact match is the default. It fits the curve the way the graph shows it: the full shape up to 20 kHz, with bands allowed anywhere in the frequency range. Narrow, deep bands are allowed when the curve calls for them, up to the Q range you set.
Treble-safe is jaakkopasanen AutoEQ’s own, more cautious fit. AutoEq smooths the treble above about 8 kHz, judges only its overall level above 10 kHz and places no band above 10 kHz. Treble measurements can vary a lot depending on a fit, seating, and physical characteristic of every rig, so this corrects only what a measurement can be trusted for. Choose it when you don’t trust your treble data, or when the EQ is for listening rather than for matching the exact graph.
In either mode, the gain range’s maximum caps the largest boost the whole EQ may apply, not only each band. The preamp follows automatically, so a bigger boost costs loudness rather than clipping. Lower the maximum if you would rather keep the level up.
The frequency, Q and gain ranges are bounds the fit works within, exactly as you set them, not a clamp applied to the result afterwards: narrowing them changes what the optimizer looks for rather than trimming what it found. The frequency range says where a band may sit — the fit is still judged across the whole axis, so a narrow range leaves the rest of the curve alone instead of pretending it is already correct.
With Use shelf filters on, the fit places the low and high shelf itself, choosing their frequency and Q as well as their gain. Shelf Q stays between 0.4 and 0.7, since a steeper shelf overshoots into a bump that a peaking band does better.
Graphic-EQ presets fit too. Frequency and Q come from the preset’s own bands and only gain is optimized, so every band lands exactly on its slider.
If the module cannot load for any reason, the older JavaScript optimizer answers instead, and the AutoEQ panel says so. It is slower and fits less well, and it sometimes returns fewer bands than it was asked for, but a failed load never costs you a working AutoEQ. It has only one way to fit, the same as Exact match, so the fit mode is hidden until turboEQ loads again. It cannot keep bands on a graphic EQ’s sliders, so with a graphic-EQ preset AutoEQ leaves the filters as they are and says why.
turboEQ can also turn down a particular request while loading fine — Treble-safe with a frequency range entirely above 10 kHz, for example, since that mode places no band there. The older optimizer answers that request too, and the panel says the settings were the problem; the fit mode stays, so you can switch to Exact match.