Case study: turning a bass-heavy hip-hop mix from "bangs in the studio" to "bangs on a phone"
Walking through a real producer's mix that scored 64 on MixLens, identifying every issue from the diagnostics, and rendering a corrected master that scored 87 — with the numbers from the actual run.
This post is part of the archive. The workflow-first guide lives in Learn and is the better place to start if you want the product path instead of the background read.
A producer dropped a hip-hop mix into MixLens last week. The kick punched, the 808 rolled, the vocals were forward — on their studio monitors, it banged. Then they previewed it on their phone, and the low end vanished. On a friend's Bluetooth speaker, it sounded thin. In the car, the kick disappeared into engine noise.
Initial Translation Readiness: 64 / 100. Three diagnostics fired, two critical. This is the walkthrough of what each one meant, what the corrective chain did about it, and what the score looked like at the end.
What MixLens measured
The original analysis returned these numbers (anonymized to a representative case):
| Metric | Value | Streaming target | Status |
|---|---|---|---|
| Integrated LUFS | −10.2 | −14 | Too loud |
| True peak (dBTP) | +0.6 | ≤ −1.0 | Clipping |
| Loudness range (LRA) | 4.1 LU | 6–12 LU | Crushed |
| Stereo correlation (< 150 Hz) | 0.43 | > 0.7 | Collapses on mono |
| Tonal balance (low_mid) | +5.2 dB | Near genre mean | Boomy |
Five problems, all visible in the dashboard, all backed by named rules. Let's go through them.
This is also the clearest example of why the product is more than a meter: the score exposed the problems, the corrective panel ranked the fixes, the preview path let the producer hear the change before rendering, and the finished master landed back in the project workflow instead of getting lost in exports.
Diagnostic 1: stereo low-end collapse
The biggest issue was the low-end stereo. Below 150 Hz, L and R correlation was 0.43 — meaning the sub and kick had significant out-of-phase content. On stereo monitors, that reads as "big, wide low end." On any mono playback (phone speaker, Bluetooth speaker, club PA bridge mode), out-of-phase content cancels. The bass literally disappears.
The rule that fired:
STEREO_LOW_COLLAPSE — Below 150 Hz, channel correlation is 0.43.
Out-of-phase low-end disappears on mono playback (phones, club PAs,
Bluetooth speakers). Place a stereo-to-mono utility below 150 Hz on
the mix bus, before any bus saturation or limiting.
The corrective step: MONO_BELOW_150. The chain runs an elliptical EQ that collapses content below 150 Hz to mono — gentle slope, doesn't touch anything above the crossover. After the pass, low-end correlation jumped to 0.97.
Diagnostic 2: low-mid buildup
Tonal balance showed low_mid (200–500 Hz) sitting +5.2 dB above the genre mean. That's the "boomy / muddy" frequency range — it sounds great on big monitors with room compensation, sounds like cardboard on phone speakers.
The rule:
LOW_END_BUILDUP — Low-mid band (200–500 Hz) is 5.2 dB hot vs the
genre target. On small speakers, low-mid buildup masks the kick and
the vocal — translation suffers most where listeners actually live.
The corrective step: LOW_MID_SHELF_CUT. A low shelf at 200 Hz with depth proportional to the measured buildup (capped at −9 dB). The chain cut −4.8 dB, bringing the band within 0.4 dB of target.
Diagnostic 3: true-peak overshoot
True peak was +0.6 dBTP. Inter-sample peaks above 0 dBFS cause MP3 / AAC / Ogg encoders to clip on reconstruction — even when sample-domain peaks are fine. The original master had been limited with a sample-domain brick wall at 0 dBFS, which is what produced this.
The rule:
PEAK_TRUE_PEAK — True peak measures +0.6 dBTP. Streaming codecs clip
on inter-sample peaks above 0 dBTP. Lower the true-peak ceiling and
re-render, or apply a true-peak limiter (oversampled).
The corrective step: TP_LIMIT. A 4× oversampled limiter with a hard clip at the oversampled rate, then decimation back to native. After the pass: −1.04 dBTP. Safely under streaming spec.
Diagnostic 4: over-loud (compressed)
Integrated LUFS at −10.2 with an LRA of 4.1 LU is the classic "loudness war" master. After Spotify pulls it down to −14 LUFS, all the loudness was spent on transient destruction without any of the perceived-loud benefit.
The fix involved two steps in the chain. BUS_GLUE actually increased the LRA slightly (a wide-band bus comp with longer release than the original master's limiter, which preserves transients better). Then LOUDNESS_NORMALIZE brought integrated down to −14 LUFS. After both, the LRA settled at 7.3 LU — in the streaming sweet spot.
The full chain that ran
In canonical DSP order:
MONO_BELOW_150— collapsed sub-150 Hz to mono. Low correlation: 0.43 → 0.97.LOW_MID_SHELF_CUT— −4.8 dB shelf at 200 Hz. Low_mid band: +5.2 → +0.4 dB vs target.REFERENCE_MATCH_EQ— genre curve fallback (no reference uploaded). Mid-band tightening, presence boost: net moves under 2 dB.BUS_GLUE— light bus compression. LRA: 4.1 → 7.3 LU.LOUDNESS_NORMALIZE— to −14.0 LUFS integrated.TP_LIMIT— 4× oversampled, ceiling −1.0 dBTP. Output: −1.04 dBTP.
Total render time: ~22 seconds on a typical Celery worker. The producer downloads a corrected WAV; the original is untouched.
The result
After the corrective render, MixLens re-analyzed the output. Final scores:
| Metric | Before | After | Change |
|---|---|---|---|
| Translation Readiness | 64 | 87 | +23 |
| Integrated LUFS | −10.2 | −14.0 | At target |
| True peak (dBTP) | +0.6 | −1.04 | Under ceiling |
| Loudness range (LRA) | 4.1 LU | 7.3 LU | In range |
| Stereo correlation (< 150 Hz) | 0.43 | 0.97 | Mono-safe |
| Tonal balance (low_mid) | +5.2 dB | +0.4 dB | Near target |
Critically, the score didn't go to 100. It went to 87. That's honest — there's still a high-mid imbalance the chain didn't fully resolve (the producer would need to re-render with a reference track for the matched-FIR pass to surgically address it). MixLens flagged it; the producer now knows the next move.
What the producer heard
After downloading the corrected master:
- Phone speaker: the kick and bass came through. The vocal stayed forward. No more "where did the low end go?"
- Bluetooth speaker: tight, no longer thin. The 808 had presence without booming.
- Car: the kick punched through engine noise. The hi-hats didn't get masked.
- Headphones: still felt full and wide, despite the mono-low and the tighter LRA.
This is what "translates" actually means. Not "sounds the same everywhere" — sounds intentional on every playback system. The mix went from "great in the studio, bad everywhere else" to "great in the studio, also great everywhere else."
What this tells you about your own mixes
Most producers' translation problems come from the same handful of issues, in the same order of impact:
- Mono compatibility below 150 Hz — almost always the biggest issue when a mix doesn't translate
- Low-mid buildup — the "studio sounds great, phone sounds muddy" syndrome
- True peak overshoot — the silent killer that makes everything fizz on lossy codecs
- Over-loud, under-dynamic master — a loudness war hangover that hurts on streaming
MixLens catches all four deterministically. Every diagnostic ties back to a measurement; every fix ties back to a step in the chain; every score change ties back to a delta you can see.
Drop your bounce in and find out what your translation gap looks like. The number doesn't lie, and neither does the corrected render.
If you're working a release instead of a one-off bounce, the same workflow carries through to project workspaces, batch render, and per-platform export, so you can keep the same diagnosis while you move from single track to full rollout.
See your mix the way it'll translate.
MixLens runs the same standards-based analysis described in this post on your bounce — free, deterministic, every score backed by a citation.