The relevant threads are:
http://www.hydrogenaudio.org/forums/index....showtopic=12004
http://www.hydrogenaudio.org/forums/index....showtopic=17799
http://www.hydrogenaudio.org/forums/index....showtopic=18014
etc!
1. It is well known that listening to the "surround" channel in isolation (at its most basic this is just the difference channel, L-R), or (more commonly) just putting your ear close to the rear speakers doesn't sound very nice when replaying surround sound material encoded with lame --alt-preset standard.
2. However, it is assumed (but has never been tested) that lame --alt-preset standard (and, for that matter, MusePack -q5) are generally transparent, even when processed through a matrix surround decoder (e..g Pro Logic, DPL II, DTS neo.6 etc) if you have your speakers (and yourself) positioned correctly, and your decoder configured correctly.
It would be nice to run a listening test to check assumption (2), or at least to probe it a little. There are anecdotal comments like "lame at 128kbps sounds fine with Dolby Pro-Logic" - but that's just not good enough - lame at 128kbps doesn't sound "fine" with stereo material, let alone Dolby Pro Logic! However, I think this is a difficult thing to test - not many of us have the equipment.
So it may be possible to solve issue (1) instead. You see, it may be that I know I'm going to use a vocal-cut plug-in on my mp3s, and I don't want them to sound bad. Or it may be that I like sitting next to my rear speakers, bathed in the surround signal. Or it may be that I want to use my mp3s with a different kind of decoder which hasn't been tested yet. Or it may just be that, until (2) is proven, I want a bit of insurance.
Current "solutions" are to force discrete stereo only, or to use a very low NSMSFIX value (1.0 or lower works well). However, these seem wasteful (especially on mono sections of the material, like dialogue in a movie!), because they're not really attacking the actual problem.
So, here's a suggestion (because I know the lame devs have absolutely nothing else to do at all!
Further still, the switch could take a parameter, the value of which indicates the likely breakthrough from the front channels to the rear channels in the listening room. The masking calculation from the front channels (i.e. L+R) could be taken, reduced by this value, and added to the masking calculation for the rear channel (i.e. S: difference) so that sounds hidden by acoustic breakthrough from the front channels weren't stored, making the process slightly more efficient.
This value could range from 0, meaning that masking from the front channels will completely swamp the rear channel, and it shouldn't be considered in isolation (as now), to -infinity, meaning that the front channels are not audible in the same room as the rear channel, meaning that I'm intending to listen to the difference channel in isolation at some point (e.g. a vocal-cut plug-in).
Comments?
Cheers,
David.