Just discovered this old gem of a codec.

2019-01-15 18:13:39

Discovered Musepack last week in my hunt for perfect temporal resolution (rendering every single transient) at a medium-low bitrate around 160kbps. For me this is the most important aspect of perceived sound quality, followed closely by stereo image and good (perceptually transparent) high frequency reproduction.

MPC at its --standard quality setting does all of the above amazingly well. OPUS at 160kbps almost achieves full transient detection and rendering, but in my experience it needs to be pushed to at least ~200kbps to ensure that every single transient is actually detected as such and rendered cleanly. All other aspects of OPUS at 160 are excellent, but it does tend to fall slightly behind when it comes to temporally dense (?) sounds like fast guitar strumming, shakers, castanets, electronic clicks in quick succession, applause, etc. especially in a busy mix. Worth noting that OPUS renders the transients it does detect flawlessly, just that it won't pick up on 100% of them without upping the bitrate. With Musepack, there's no such compromise.

Aside from temporal resolution, Musepack's psychoacoustic model is also excellent. I find that it comes closest out of all the codecs I've tried in doing exactly what it takes to achieve perceptual transparency, no more and no less. The noise shaping is executed well enough that I cannot ABX the resulting transcode against the lossless source, and I've tried this across a range of genres. The noise was the thing I was expecting to give the MPC files away more than anything else, but it looks like Buschmann and Klemm really nailed the model. Results are as clean as the original FLAC to my ears, which was a pleasant surprise!

Vivid and accurate stereo imaging is thankfully also part of the package here. Sometimes a codec will alter the stereo field in some way and compress it, such that sounds are either smeared across a wider degree angle in the horizontal plane (an approximation of position instead of being rendered accurately), or they collapse into the centre (rendered as mono) if they are close enough to it, as happens with Vorbis below Q6 (unless you use the 'disable-coupling' tag). Even Apple's own AAC (with I would class as very good at 160kbps) subtly does something to the stereo field at medium bitrates in a way that is hard to describe here - it affects sounds (mostly heard in reverb) out at the wider ends of the field, such that it sounds attenuated or flat somehow, and as such I can reliably ABX this otherwise excellent codec against the lossless source in most cases. MPC, like OPUS, has excellent stereo definition with no compression. Perfect!

Lastly is the efficiency of how Musepack deals with super high frequency information. I've been playing with audio for a long time and over the years I've learned that I cannot hear a single sound above say, 18kHz unless it's a very hot signal (at normal / moderately loud listening levels). Same goes for 19kHz except the signal has to be even hotter. I'm in my late 20s and my hearing is healthy, topping out at around 19.4kHz, so I have a decent range. But I find that too many codecs waste far too many bits on the stuff right up top, when likely more than 90% of the sounds are inaudible below a certain decibel threshold. MPC takes the correct approach here (similar to vorbis) by only rendering sounds at 16, 17, 18, and 19kHz that are loud enough to actually be heard (assuming good hearing and a quiet listening environment). And in my case the results are just as crisp and vivid as the lossless source, even when listening very carefully, using very bright and HF-rich source material. I really appreciate this intelligent, no-nonsense approach to lossy encoding and I'm sure its a big reason why Musepack manages to be as efficient as it is at ~160kbps while achieving what most other modern codecs can't: true temporal resolution.

So to sum it all up I'm really impressed. Love the the philosophy and the methodology behind Musepack and gladly it's fairly well supported: Swinsian (the best music player available on OSX imo) has native playback and tagging support for Musepack, as does GoneMAD player on my Android. For transcoding from FLAC to MPC I use BatchEncoder 4.0 on my Windows machine. A minor inconvenience (I wish LameXP could encode to Musepack - it already decodes it) but better than being stuck with command line tools. Here's hoping we'll see continued support going forward!

Re: Just discovered this old gem of a codec.

Though my Musepack "innitiation" was, like for most people in this forum, back when it was still called MP+, I see myself returning to Musepack's "certainty", so as to speak (encode it once then forget about; its maturity) more often, at this day and age of a broader, almost endeless supply of software available for smart phones (long live foobar2000 for Android!) - which has practically rendered our deciding which format to use, more a matter of personal choice (and I've always had a soft spot for Musepack) than compatibility per se.

MPC at its --standard quality setting does all of the above amazingly well. OPUS at 160kbps almost achieves full transient detection and rendering, but in my experience it needs to be pushed to at least ~200kbps to ensure that every single transient is actually detected as such and rendered cleanly. All other aspects of OPUS at 160 are excellent, but it does tend to fall slightly behind when it comes to temporally dense (?) sounds like fast guitar strumming, shakers, castanets, electronic clicks in quick succession, applause, etc. especially in a busy mix. Worth noting that OPUS renders the transients it does detect flawlessly, just that it won't pick up on 100% of them without upping the bitrate. With Musepack, there's no such compromise.

Here's hoping all those adjectives and impressions, as well as your decision itself, were thoroughly based on blind testing and nothing else. Not to mention full TOS 8 compatibility.

Vivid and accurate stereo imaging is thankfully also part of the package here. Sometimes a codec will alter the stereo field in some way and compress it, such that sounds are either smeared across a wider degree angle in the horizontal plane (an approximation of position instead of being rendered accurately), or they collapse into the centre (rendered as mono) if they are close enough to it

Re: Just discovered this old gem of a codec.

Vivid and accurate stereo imaging is thankfully also part of the package here. Sometimes a codec will alter the stereo field in some way and compress it, such that sounds are either smeared across a wider degree angle in the horizontal plane (an approximation of position instead of being rendered accurately), or they collapse into the centre (rendered as mono) if they are close enough to it

Which codecs & at what bitrate?

I guess opus below 128kbps and vorbis below 160kbps everything above 12KHz-ish is mostly mono. Atleast it's the reason that breaks transparency for me for any content with a decent amount of stereo separation and sounds that are transient-ish and have panning effects. It's like parts of that transient are leaking from one channel to the other (I think it's called crosstalk? Correct me if I'm wrong).

Re: Just discovered this old gem of a codec.

Discovered Musepack last week in my hunt for perfect temporal resolution (rendering every single transient) at a medium-low bitrate around 160kbps. For me this is the most important aspect of perceived sound quality, followed closely by stereo image and good (perceptually transparent) high frequency reproduction.

MPC at its --standard quality setting does all of the above amazingly well. OPUS at 160kbps almost achieves full transient detection and rendering, but in my experience it needs to be pushed to at least ~200kbps to ensure that every single transient is actually detected as such and rendered cleanly. All other aspects of OPUS at 160 are excellent, but it does tend to fall slightly behind when it comes to temporally dense (?) sounds like fast guitar strumming, shakers, castanets, electronic clicks in quick succession, applause, etc. especially in a busy mix. Worth noting that OPUS renders the transients it does detect flawlessly, just that it won't pick up on 100% of them without upping the bitrate. With Musepack, there's no such compromise.

Aside from temporal resolution, Musepack's psychoacoustic model is also excellent. I find that it comes closest out of all the codecs I've tried in doing exactly what it takes to achieve perceptual transparency, no more and no less. The noise shaping is executed well enough that I cannot ABX the resulting transcode against the lossless source, and I've tried this across a range of genres. The noise was the thing I was expecting to give the MPC files away more than anything else, but it looks like Buschmann and Klemm really nailed the model. Results are as clean as the original FLAC to my ears, which was a pleasant surprise!

Vivid and accurate stereo imaging is thankfully also part of the package here. Sometimes a codec will alter the stereo field in some way and compress it, such that sounds are either smeared across a wider degree angle in the horizontal plane (an approximation of position instead of being rendered accurately), or they collapse into the centre (rendered as mono) if they are close enough to it, as happens with Vorbis below Q6 (unless you use the 'disable-coupling' tag). Even Apple's own AAC (with I would class as very good at 160kbps) subtly does something to the stereo field at medium bitrates in a way that is hard to describe here - it affects sounds (mostly heard in reverb) out at the wider ends of the field, such that it sounds attenuated or flat somehow, and as such I can reliably ABX this otherwise excellent codec against the lossless source in most cases. MPC, like OPUS, has excellent stereo definition with no compression. Perfect!

Lastly is the efficiency of how Musepack deals with super high frequency information. I've been playing with audio for a long time and over the years I've learned that I cannot hear a single sound above say, 18kHz unless it's a very hot signal (at normal / moderately loud listening levels). Same goes for 19kHz except the signal has to be even hotter. I'm in my late 20s and my hearing is healthy, topping out at around 19.4kHz, so I have a decent range. But I find that too many codecs waste far too many bits on the stuff right up top, when likely more than 90% of the sounds are inaudible below a certain decibel threshold. MPC takes the correct approach here (similar to vorbis) by only rendering sounds at 16, 17, 18, and 19kHz that are loud enough to actually be heard (assuming good hearing and a quiet listening environment). And in my case the results are just as crisp and vivid as the lossless source, even when listening very carefully, using very bright and HF-rich source material. I really appreciate this intelligent, no-nonsense approach to lossy encoding and I'm sure its a big reason why Musepack manages to be as efficient as it is at ~160kbps while achieving what most other modern codecs can't: true temporal resolution.

So to sum it all up I'm really impressed. Love the the philosophy and the methodology behind Musepack and gladly it's fairly well supported: Swinsian (the best music player available on OSX imo) has native playback and tagging support for Musepack, as does GoneMAD player on my Android. For transcoding from FLAC to MPC I use BatchEncoder 4.0 on my Windows machine. A minor inconvenience (I wish LameXP could encode to Musepack - it already decodes it) but better than being stuck with command line tools. Here's hoping we'll see continued support going forward!

I started my adventure with Musepack when SV8 came out, encoded everything with standard, tested tested and tested, and will never use any other codec for my music library.It's nice to see that in 2019 people are still going for Musepack

Re: Just discovered this old gem of a codec.

I encoded my whole CD library to MPC at Radio preset like 15 years ago and yet I'm to spot a single artifact. I store it on NAS to listen at home, and on a 32GB microSD card in my smartphone to listen to anytime with fb2k, stream via bluetooth in my car etc

Re: Just discovered this old gem of a codec.

With android music software supporting it there no reason not stick with MPC. --standard 160k can in my case handle industrial/electro well better than opus, Which fantastic for a pure subband codec.

I think allot of the wins is because the dev's made sure it can handle a wide set of music. Hence why it was made to shoot above 400kbps for very hard to encode stuff regardless of setting. There tag to force upping the bit rate.

Re: Just discovered this old gem of a codec.

But frankly I am more interested in battery efficiency on my (Android) phone, than whether I would need to go up this or that much in filesize. I can name more than one impressive codec that I don't anymore "need" for its compression ratio.

Re: Just discovered this old gem of a codec.

Well at the time compression ratio was an issue. I do regret that I didn't take the costs and go lossless/hybrid because now I probably won't ever have a possibility to re-rip everything to FLAC which I do use for new music.

I remember that the only contenders were MP3, OggVorbis, WMA, and MPC. Opus was non existent and there were no sensible free AAC encoders yet. WMA wasn't well supported on fb2k which was my player of choice and is to this day.I remember spotting a couple of tracks (of Faith & The Muse and some old Dead Can Dance) that LAME wasn't able to encode without noticeable artifacts even at highest settings, while MPC at --radio preset did well and I wasn't able to meaningfully ABX it vs --standard.Many people find MPC artifacts much more tolerable than those of other codecs - I hate pre-echo and ringing and those hardly occur in MPC - its artifacts are more like dropouts which become annoying at sub-128kbps bitrates.Can't remember why I passed OggVorbis... perhaps because it had no quality presets and I couldn't decide on arbitrary bitrate Its adoption wasn't certain yet.

Anyway, to me MPC did pass the test of time - it's here to stay as long as there is a sensible player supporting it.There's no MPC encoder on my system though... If I ever had to lossy encode anything again, I'd use something compatible these days, like MP3, AAC, Opus or OggVorbis.

Re: Just discovered this old gem of a codec.

First, for any file you only have in only a lossy format, that format should ideally be "here to stay as long as there is a sensible player supporting it". Decoding back to lossless is an "emergency solution". My "emergency solution" is to thrown in a tag that says what it is sourced from, use a different lossless codec than my first choice, and use double file endings. blahblahblah.RA.tak or something.

So if you have files as MPC-only, then keep them as they are - and make a sacrifice to your local $DEITY that you didn't choose f..king Real Audio.

If on the other hand you have files in [big-file-format, say lossless or maybe video or ...] and you want to transcode for portable use - then use anything that works. Compatibility is no more of an issue than re-encoding is.

Re: Just discovered this old gem of a codec.

At least at the PC side and esp Windows OS, I believe one is safe for at least 10-20 years if not more. These projects aren't typically complex like browsers or office suites and can be maintained or forked. Even in the case of 'dead' shorten and burrrnn, The binaries are spread over the internet - othersites, archive.org etc. Foobar still has a shorten plugin. You can probably load old foobar and winamp 2.xx versions into win10 without much issues.

Still using Musepack - still happy as hell with it

Musepack was always meant to be used for archiving at higher bitrates. The goal was to achieve an almost transparent quality at around 200 - never around 128 kbps. So when people are testing musepack at lower bitrates, that for us was like at testing a porsche in the city. Not meant to be!

When Andree Buschmann and I did listening tests during the time when he was optimized his codec - most of the optimizing work was indeed done while coding at around 128 kbps. We knew it would be too low, but we also knew that as soon as we would go for the actual bitrates even the more persistent artifacts were mostly beaten. 200kbps is the way to go here.

At that time we used hifi speakers as well as headphones - we were younger then - and every small artifact we encountered were insanely disturbing for us and so distinguished it had hurt. Andree tuned his detection algorithms to a point where (at least to us) even the killer tracks couldn't beat it anymore.

I think many of those killer tracks and passages you come across nowadays are still from our archive. So in comparison to newer codecs Musepack is still exceptionally. The average bitrate in my collection is currently around 224 kbps.

And it must be said that I'm still not able to successfully compress the most critical tracks without being able to hear some minor artifacts. Mostly because I was trained to hear them and listened to those passages hundreds of time.

In comparison opus is also very close and very good. A tiny bit better on some tracks and slightly worse on others. But I also think that musepack is still the most reliable compression algotithm because it's completely fire and forget when using it at higher bitrates. It never failed me and I'm still very picky when listening over hifi headphones.

Having said this I hope Andree reads this at some point. I'm so greatful for the work he did and we had a great time finding artifacts and seeking perfection. Some good things are still achieved in the backyards without major websites and communities. And musepack ist definetly one of them.