Hi Pete,
Not wishing to de-rail your thread but wondered if this is of interest:
I built what I call an auto-attenuator to do exactly what you describe - keep audio levels to a more uniform range - this is used with a home-made hearing aid inductive loop system for my (97 years old) mother-in-law so she can hear and enjoy her TV (and DvD etc. too).
Note I didn't design the auto-attenuator but used a circuit by Alan Wolke (W2AEW) a member of this forum - and then added what I call a "buffer amplifier" to restore the signal suitable for input to a TDA3116D2 based class D audio amplifier which then uses a cable-loop around her lounge as it's output (but I initially tested it using my home HiFi and like it enough that when a round tuit is available I'll build one for us, too).
Simulation using LTspice was used to tweak things (mainly the buffer amp) but it works on the entire audio band (it's capable of 40Hz through 50KHz+ , but for hearing aid use we only need 100Hz-20KHz really, but I found this happened naturally (presumably by her hearing aids) so I didn't actually include the bandwidth limiting in the circuit in use currently.
This works very well indeed - and I can provide the circuit I'm using if this is of interest, but don't with to de-rail this thread by posting more than this without invitation
Oh, I'm just putting together a semi-portable system so when she's staying with others away from home it can simply be plugged into their TV etc. as she now misses it when it's not available - it is usually used in parallel to the existing sound system, so those with hearing can adjust their sound but the inductive loop system, with this auto-attenuator and buffer amp, is set independently to her preferred volume.
Kr, Paul.