HDCD software decoding

Back in 1995, when CDs were still relevant, a company called Pacific Microsonics introduced a new CD encoding method called HDCD that claimed to store 20 bits of audio data on the 16 bit format, whilst still maintaining compatibility with CD players.

At some broadly similar time, I had support for HDCD I was using an the first Musical Fidelity X-DAC. For the curiosity value I deliberately hunted out CDs that had it such as Green Day’s Nimrod, Joni Mitchell’s Hits and, erm... the Independence Day soundtrack. It was slim pickings if I’m honest.

HDCD is now dead-tech. If you want over 16-bits of audio data, there’s DVD-audio, SACD or various download options. Not that it really matters, since modern mastering barely uses 16-bits anyway.

But I was reminded of HDCD when I recently bought Josh Ritter’s 2007 album The Historical Conquests of Josh Ritter, which I recommend by the way, on CD. When I ran this through dbPowerAmp to rip it detected it as HDCD.

Just for old times sake, I thought I’d look at how the decoding options affect the waveform.

Deep in the belly

I tested the CD using Earwhacks and the lead track, the lyrically dense To the dogs or whoever. You can stream this, and the rest of the album, from his site.

First thing to say is that is clearly isn’t a very good recording. But in terms of the HDCD decoding versus non-HDCD decoding there’s no visual, or to my ears audible, difference.

What was I expecting? Well, if it was adding more resolution I’d expect a smoother graph. If it was adding more dynamic range that should be reflected in the shape of the graph.

I may not care whether I get one of these or not

I was suspicious that the Josh Ritter track wasn’t really HDCD at all. So I tried again with the Independence Day soundtrack. For this I used track 7, Aftermath, which starts quiet and grows into a big orchestral crescendo.

So no obvious change, but it has developed a small problem with clipping. The output files from the decoder is 20-bit data in a 24-bit file and there is an option to pad the file up 6dB to make it the same volume. By default I had this turned on as I presumed the decoder would be smart enough to avoid clipping, but apparently not.

And now, without the padding:

As expected the average amplitudes are 6dB down, but there’s no sign of clipping. So the last question is whether the non-padded version is better than the raw one. It’s a more fiddly test to deal with the volume difference, but the short answer is I couldn’t hear anything significant.

Conclusion

It may be that the underlying HDCD decoder, used by dbPowerAmp and others, does not fully decode the standard and that this also also applies to the decoder in Windows Media Player. This would explain the Josh Ritter results, if HDCD is present but is only using the features not supported it wouldn’t make any difference.

So given using the HDCD decoding option seems to make no positive difference, that I can hear, and can introduce clipping problems where there were none, my recommendation is don’t use it.