It was none of those. It is the player, and it has been doing it deliberately the whole time.
The problem
Films are mixed for 5.1 surround. Six channels: front left, front right, centre, LFE (the sub), and two rears.
The centre channel is almost entirely dialogue. In a cinema it gets its own dedicated speaker pointed at the audience, with nothing else competing for it. That is why you can always hear the words at the pictures.
Most of us are watching on two speakers or a TV. So the player has to fold six channels down into two. Here is what it actually does:
- Front left goes straight to your left speaker at full level (1.0)
- Front right goes straight to your right speaker at full level (1.0)
- Centre (the voices) gets turned down to 0.71 and split across both
- The two rears get mixed in at 0.71
- LFE usually gets dumped
One channel down, four channels up. The voice loses twice: once for being turned down, once for being outnumbered.
Why on earth does it do that
Because it is technically correct, which is the most annoying kind of wrong.
Front left and front right are not being folded at all. They already have a speaker each, so there is nothing to compensate for and nothing to turn down.
The centre has no speaker of its own, so it has to go into both. When you send an identical signal to two speakers it sums coherently at your ears and comes out louder than the same sound sitting in one channel alone. So it gets multiplied by 0.707 (one over the square root of two) to cancel that out. That is the number that preserves the power. It is in the international standard, ITU-R BS.775. Every player does it. Windows' own mixer does it.
So the maths is right. The problem is that it is the right answer to the wrong question. Nobody asked "can you still make out the words". Preserving the power means the voices end up at the same level as everything else, and "the same level as everything else" is exactly what dialogue must never be. In the cinema the centre is privileged. The downmix carefully and correctly strips that privilege away and makes the voices just another equal citizen sharing space with an orchestra.
There is a second reason for keeping the coefficients under 1.0: headroom. You are summing five channels into two, and if everything went in at full whack, loud scenes would clip.
Why none of VLC's own settings can fix it
This is the bit that wasted the most of my time, so let me save you the trouble. I tried all of it.
The equaliser cannot fix it. EQ works on frequencies, not on channels. Voices and an orchestra live in the same frequencies. Boost the range where speech lives and you boost the strings, the brass and the cymbals sitting right on top of it, because they are all in there together. You end up with a louder mess rather than a clearer one. And if you do the obvious thing and boost the "voice range" of 85Hz to 255Hz (which is where male and female voices actually sit), you make it worse, because intelligibility does not live in the fundamental. It lives in the consonants, up around 1kHz to 4kHz. Boost the fundamentals and all you have done is add mud.
The AGC / normaliser cannot fix it. It turns everything up and down together. The ratio between the voices and the music never changes, so the dialogue stays exactly as buried as it was, just at a different overall volume. Worse, VLC's normaliser measures raw energy, and deep bass carries enormous energy while sounding barely loud at all. So a kick drum or an explosion looks like "far too loud" to it and it slams the gain down to almost nothing. That is the thing where the volume drops out on bass notes and you have to lunge for the remote. Not a fault, just the wrong measurement.
The compressor cannot fix it. Same problem. It cannot tell a voice from an explosion, so it squashes both.
The reason none of it works is simple once you see it: every knob VLC gives you treats all six channels the same. None of them can lift the centre and leave the rest alone. And there is no setting anywhere in VLC to change the downmix itself.
That is what took me so long to realise. I was not using the settings wrong. There is no combination of them that could ever have worked. The problem is not in the sound, it is in the balance between the channels, and VLC gives you nothing that can touch that.
You have to fix it before the six channels get folded into two, while the centre still exists as a separate thing. Once they are merged, the dialogue and the music are the same signal and no amount of EQ, AGC or compression will ever separate them again.
Why has nobody fixed this
Because it is not a bug. VLC is doing precisely what the spec tells it to. Deviating from the spec is how you get accused of being wrong. Someone did raise a request asking for adjustable channel levels in the downmix, and it simply never got built.
Meanwhile everyone quietly worked around it without realising what they were working around. People bought soundbars. TVs sprouted "dialogue enhance" buttons. Streaming services added dialogue boost. And an entire generation started watching everything with the subtitles on.
The fix
VLC has no way to change the downmix. There is no setting, no plugin, nothing. I checked.
MPC-HC does, because it has LAV Filters built in, and LAV lets you set the mix levels yourself.
Get the portable build from https://github.com/clsid2/mpc-hc/releases (the clsid2 fork, the original project stopped in 2017). Portable means it is just a folder. Nothing installs, nothing registers, nothing system wide, and VLC is left completely alone.
Then:
Options > Internal Filters > LAV Audio Decoder > Configure > Mixing tab
- Tick Enable Mixing
- Output Speaker Configuration: Stereo
- Center Mix Level: 1.00 (up from 0.71, so +3dB)
- Surround Mix Level: 0.20 (down from 0.71, tune to taste between 0.2 and 0.5)
- LFE Mix Level: 0.00
- Clipping Protection: ticked
- Normalize Matrix: leave unticked
That is it. Three sliders. Voices now sit in front of the music instead of underneath it.
The one limitation
LAV gives you sliders for centre, surround and LFE, but front left and right are locked at 1.0 and there is no slider for them. Any music mixed into the front channels still competes with the dialogue at full level and you cannot touch it.
Centre at 1.00 with the rears pulled down is therefore the ceiling of what MPC-HC can do. In practice it is plenty.
Other bits worth doing while you are in there
Seek keys to match what you had in VLC:
Options > Player > Tweaks, set the jump distances in milliseconds (small 5000, medium 30000). Then Options > Player > Keys and bind Jump Forward/Backward (small) to Shift + arrows, and (medium) to Ctrl + arrows.
Leave Fast seek ticked. It lands on the nearest keyframe rather than the exact second, so a 5 second jump might be 3 or 8 depending on the encode. In exchange it is instant, with none of VLC's few seconds of hanging about. Worth it.
File associations: Options > Player > Formats. This needs admin rights or the tickboxes silently refuse to stick, so run the exe as administrator just for that one job.
Explorer thumbnails: Windows 7 has no Matroska support, so mkv files show a generic icon. Icaros fixes it. Add all video formats in its config, not just mkv, otherwise Windows keeps handling mp4 itself and makes a mess of some of them. Be aware Icaros is a shell extension, so unlike MPC-HC it does hook into Explorer system wide.
A note on whispers
Whispered dialogue will still be quiet, and that is correct. A whisper is supposed to be quiet, that is the performance. The bug was never that quiet things were quiet. It was that the score and effects were sitting on top of them, so something you were meant to lean into became something you could not reach at all.
Fix the masking and a whisper is just a whisper again. Soft, but you can hear it.
MPC-HC does have a Normalize option with a speech boost under Options > Internal Filters > Audio Switcher, if you want to go further. I have left it alone, because it flattens the dynamics and I would rather keep the quiet-loud contrast now that the voices are actually audible.
Summary
Nothing was broken. The files were fine, the speakers were fine, the ears were fine. A correct implementation of a correct standard has been quietly turning the dialogue down for decades, and almost nobody noticed because there was nothing to notice: no error, no warning, just a slow creeping conviction that films had got harder to hear.
Three sliders. Years of this. I am still slightly annoyed about it.
(Moderator note - yes I did post this - exxos ;))


