Level manual
Headphone correction and crossfeed. Level flattens a headphone's measured frequency response by inverting it, then optionally adds a speaker-like crossfeed so a stereo mix stops sitting inside your head. It is a monitoring plugin: it belongs on your output, not in your mix.
Warren Labs · Trueness line · VST3 · AU · Standalone · macOS
What it's for
Headphones are not flat, and no two models are wrong in the same way. Level corrects a specific headphone toward a defined target, so what you hear is closer to what is actually in the file.
It does two separable jobs, each with its own bypass:
- Correction: a 12-band minimum-phase EQ derived from a measurement of your headphone.
- Crossfeed: a small, delayed, filtered blend of each channel into the opposite ear, the way a pair of speakers in a room reaches both of your ears.
Minimum-phase IIR by design. Linear-phase FIR would pre-ring, which is audible and wrong for this job, so Level will not offer it.
The controls
SELECT (encoder): choosing a headphone
Opens the library. Type to filter, turn or click to choose, ESC to close. Every row carries a provenance badge, which is the single most important thing to read:
| Badge | What it means |
|---|---|
| FIRST PARTY | Measured by us, on our own rig. |
| 3RD PARTY | Bundled, but measured by someone else on another rig, against their own target. |
| IMPORTED | Your own file, dropped into the folder below. We know nothing about where it came from. |
The badge states who measured it, not how good it is. Two measurements of the same headphone on different rigs are different data. For three headphones that appear in both sets here, the two corrections disagree by 2.4–3.6 dB RMS and up to 8.9 dB. That is more than the entire range of the Tilt control. Neither is "wrong"; they are answers to different questions.
Load file… / your own curves. Level reads AutoEq-format .txt files from ~/Music/Warren Labs/Level, created for you on first run. Drop a file in and it appears in the list, badged IMPORTED. This is also how a measurement we make of your headphone reaches the plugin.
SPEAKER ANGLE
The angle of the imagined speaker pair, 30°–90°, default 60°. This is literal geometry, not an effect depth: the angle sets how much signal crosses to the far ear, how dark that crossed signal is, and how late it arrives.
- Narrow (30°): speakers close together, more crosstalk, shorter delay, brighter. Pulls the image together.
- Wide (90°): the head shadows the far ear, so less crosstalk and darker, with a longer delay.
Crosstalk never reaches zero at any setting, because real speakers always cross-couple.
The interaural delay is derived from the angle by the Woodworth approximation, ≈133 µs at the narrowest to ≈380 µs at the widest. The delay is what makes the image sit outside your head; without it crossfeed only darkens and centres. The live value is shown in the Advanced panel.
TILT
A broadband warm↔bright shelf pair at 1 kHz, ±3 dB, applied after correction. For nudging the whole balance without touching the correction itself. Click the Tilt readout to reset it.
Crossfeed / Correct switches
Independent bypasses. Crossfeed off and settled is bit-transparent: the signal is untouched, not merely unprocessed.
Voicing EQ (the plot)
Five bands over the corrected baseline: a low shelf, three bells with adjustable frequency and Q, and a high shelf. Drag the dots on the curve. This is where you define your reference, as opposed to the measured correction underneath it. Toggle it with the EQ chip.
The display
- EQ (amber): the correction plus voicing actually being applied.
- Measure (dim, dashed): the headphone's measured response, i.e. what is being corrected.
- RTA: a live analyzer of the output.
- Output: output peak in dBFS. See below.
- MONITORING (amber strip): appears only when a monitoring control is engaged, and names it.
Output and the clip indicator
Level applies large boosts. A +9 dB correction on a headphone with a deep notch is routine, and that headroom has to come from somewhere.
The Output cell shows output peak. If the output ever reaches 0 dBFS, the label changes to OVER, the value turns red and shows how far over you went, and it stays there until you click it. A clip indicator that clears itself lets the one event you needed to see disappear while you were looking at the curve.
Seeing OVER is not a disaster in a floating-point DAW, but it tells you the signal reaching your converter is being asked for more than it has. Turn something down, or use Safe Gain.
Advanced panel (ADV)
Crossfeed ITD / Feed / HF: the three tuning levers behind the angle mapping, each 1.0× at the factory setting, with a caret on the track showing where that is.
FLIP L/R · POLARITY (R) · DIM: monitoring checks. Polarity inverts the right channel only, which is what isolates the side signal when combined with mono fold. They live here rather than on the faceplate because they are things you engage, listen to, and disengage, and the amber MONITORING strip on the main display is what stops one being left on by accident.
TEST SIGNAL: a built-in generator (pink noise, mono, anti-phase, sines) for checking the monitoring path without needing material.
Parameters without front-panel controls
Automatable and host-mappable, no on-screen control yet:
| Parameter | Range | Default | Notes |
|---|---|---|---|
Safe Gain | on/off | on | See below. |
Dim Level | −40…−3 dB | −20 dB | How far Dim drops the output. |
Balance | −1…+1 | 0 | Attenuates only: never boosts either side. |
Soft Start | 0–2000 ms | 0 (off) | Ramps the output up when playback begins after silence. |
Safe Gain, and exactly what it guarantees
With Safe Gain on, Level measures the peak of its own composed response (correction, voicing, tilt and crossfeed) and attenuates by that much, so a full-scale input cannot push the output past 0 dBFS. It only ever attenuates; spare headroom stays yours.
It is on by default, and on its own it costs you nothing. Every correction curve already carries a preamp that compensates its own boosts, so with a curve loaded and nothing else changed Safe Gain attenuates by 0.0–0.1 dB. It starts doing real work only when you add something on top: tilt, voicing, or crossfeed, which is exactly when clipping becomes likely.
Two limits, stated plainly:
1. It bounds the steady-state magnitude response. A guarantee covering any possible signal would need the impulse response's l1 norm, which costs many more dB of level to defend against a case music does not produce. So: it will not clip on tonal content. The clip meter remains the backstop that tells the truth either way. 2. The gain is smoothed over 20 ms, so immediately after you change a setting there is a brief window where the new guarantee has not arrived yet. The clip meter will catch it. This is deliberate: an unsmoothed gain change would click on every edit.
Setups (the EQ cell → Setups)
Eight starting points. They are setups, not tone presets: Level's tone comes from the measured curve you pick, so a preset that shipped an EQ shape would be arguing with the measurement.
No setup ever changes your headphone. Choosing a headphone is a statement of fact about your hardware; a preset has no business overriding it. They also leave bypass alone (your host owns it) and never switch on Safe Gain behind you.
| Setup | What it's for |
|---|---|
| Flat reference | Correction only. No crossfeed, no voicing, just the measurement and nothing else. |
| Speakers in a room | Crossfeed at its voiced depth, 60° pair. The default starting point. |
| Wide speakers | A 90° pair: more separation, darker and later at the far ear. |
| Narrow, close in | A 30° pair pulls the image together when a mix feels scattered. |
| Mix check (mono + dim) | Sums to mono and drops the level. The oldest check there is. |
| Side check (mono + polarity) | Mono with the right channel inverted, isolating the side signal. |
| Long session | Slightly deeper crossfeed, a touch of warmth, soft start. For hours. |
| Late night | Dimmed, gently lifted at the extremes to survive the level drop. |
The voicing in these stays inside ±2 dB on purpose. A preset that makes a strong tonal claim about a headphone it has never measured is guessing with your ears.
A worked example: setting up a new headphone
1. Insert Level last on your monitor path. It is a monitoring plugin; bypass it when you bounce. 2. SELECT → type your model. Prefer a FIRST PARTY badge if one exists. 3. Listen with Correct on and off. The difference should read as tonal only: the two are loudness matched, so nothing should jump in level. 4. Turn Crossfeed on at 60°. A centred mono element should step slightly out of your head rather than merely sounding darker. If it does not, raise Crossfeed ITD in the Advanced panel. 5. Check Output. If it reads OVER, enable Safe Gain or lower your source. 6. Leave Tilt alone for a week before touching it. It is there for a room you have learned, not for first impressions.
What Level does not do
Stated because the absence is deliberate, not an oversight:
- No room or speaker simulation, no HRTF, no head tracking. Level models an idealised speaker pair, not a specific control room with its own flaws.
- No per-ear (asymmetric L/R) correction yet. The measurements to support it honestly do not exist.
- No uncertainty band on the plot. Rig repeatability was characterised on 2026-08-19/24, and the result is why there is still no band: it is a property of the headphone, not the rig. A reseat moves the control band by 0.059 dB on an HD 800 and 0.316 dB on a PM-3, a 5x range on one bench, so a single band would overstate the good models and understate the bad ones. Some measurements are also bimodal across seatings, and a band across those would represent no seating that ever happened. See
measurements/RIG.md. - It is not a mixing tool. Bypass it when printing.
Specifications
- Formats: VST3, AU, Standalone · macOS 11+ · universal (arm64 + x86_64)
- Processing: 12-band minimum-phase IIR correction · Bauer-style crossfeed with Woodworth interaural delay (Lagrange-3rd fractional) · 5-band voicing EQ · all sample rates
- Latency: none reported beyond the crossfeed's interaural delay on the crossed path only; the direct path is never delayed.
- Real-time safety: no allocation on the audio thread; render is bit-identical across host buffer sizes.