QUOTE(Drenholm @ Oct 15 2005, 04:56 AM)
What I don't understand is why WavPack performs so bad on these almost-mono files. Is this, as I asked earlier, some kind of joint-stereo problem? Bryant, an explanation for a dumb person would be appreciated.

Anyway, downmixing first is not an idea solution for files that are 'almost' mono as, technically, you are changing audio data, right?
Actually you've got it backwards. On the "almost" mono files WavPack does fine. The special case that WavPack does poorly on is the "perfect" mono files. These are the ones that I should have detected during encode as being mono and stored them as a single stream. Instead, I just store them as regular stereo where one stream (the "side" stream of joint stereo) is all zeros. The entopy encoder of WavPack can detect when streams have long runs of zero, but only when
both streams do. If only one stream is all zeroes, then it consumes 1.5 bits / sample, which translates to almost 5% compression (1.5 / 32).
So, these are the files that
could be losslessly converted to mono wavs before encoding (assuming they were mono all the way through). I suppose I could add an option to the encoder to check each sample during encode, and then make a second pass to create a true mono WavPack file if there were no left / right differences in the entire file. It would be interesting to know how many applications (like players and burners) actually accept mono source files and also what percentage of "mono" tracks are really this pure.
I notice that on BoraBora's speadsheet (very nice, BTW!) only 3 of the 10 mono albums show this 4-5% difference. Perhaps the others have a mix of pure mono and almost mono tracks, or the tracks themselves alternate between pure mono and almost mono. I guess I should try out some of my mono CDs (being a bit of a geezer myself

).
Accomodating this on a block-by-block basis would require the addition of a flag to the format that would cause all existing decoders to display "not compatible with this version of WavPack!" when they encountered one of these files. This would be fine for most HA members because they probably keep up with all the recent releases. But it might be a while before all the other programs that play WavPack have been updated, and this would be inconvenient for some and, like jetpower says, could annoy Joe Average.
An even bigger concern of mine is that if any other product developers (especially of hardware devices) are considering (or are actively working on) WavPack support, the news that the format is changing would not be welcome. Both Monkey's Audio and pre-4.0 WavPack were famous for breaking the decoder every release, and this was probably not so bad because all the tools and plugins were supplied by us. FLAC was different in that Josh finalized the specs at the first release, and I believe that even the most recent FLAC file will play fine on the very first decoder. One could argue that this is an important reason that FLAC enjoys such wide hardware support, and it was my idea that WavPack 4.0 would follow this model (even though I haven't got the chance to make a formal spec

).
Of course, this is a very simple change on the decoder side and does provide a significant improvement to the files it applies to. What I may do is incorporate the flag into the decoder now but not use the mode (this is already the case for some other potential features like VBR lossy). After several months, if the decoder is in wide use and most apps have been updated and no hardware devices have surfaced, then I could add the encoding feature to take advantage of it.