Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Getting the HDCD component to decode (Read 877 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Getting the HDCD component to decode

I never heard of HDCD before today, though I've had CDs since the late 80s.  I recently bought a used CD a great compilation of 16 tracks and on the box there's a label saying "HDCD".  I googled, did as much reading as I could and have now installed latest foobar2000 32-bit and the HDCD component by Kode54.  I can't figure out how to invoke the decoder.

I did discover I can right-click on a track and run "Utilities", and in there is "Scan for HDCD tracks".   I've selected all 16 tracks and the resulting list had NO entries.  So I'm thinking that they failed to set the switches when they produced the CD.

But when I convert the files from WAV to WAV and wish to invoke "Processing" (which I've never done before I don't think), I don't see "convert HDCP" in the list of available DSPs (whatever DSPs are).

How do I use the HDCD component to convert these HD tracks (which I ripped via CDex) from 16b to 24b (20b) WAV such that the HDCD decoding occurs, especially in this odd case where the encoding flags were apparently never set correctly at the factory?   But even if they HAD BEEN set correctly, how to I get the component invoked???   Thanks in advance!

Re: Getting the HDCD component to decode

Reply #1
It sounds like your CD is not really HDCD. The scanner should have detected it, though the original component has some known issues that it doesn't always work reliably.
I have been working on an improved version of HDCD decoder (discussion about that can be found in this thread). You can download my version from https://foobar.hyv.fi/foo_hdcd.fb2k-component.

The HDCD component works automatically during playback pretty much for all lossless formats. Technically the decoder needs to support postprocessing service, all built-in decoders should do it and all third party lossless decoders from knowledgeable people should do it.
You might want to edit the default status bar text to indicate HDCD presence. At its simplest your can for example just add [HDCD: %__hdcd%]. In original component it will print "HDCD: yes" if HDCD decoding is active, it can change mid-track. In my component it will print the "HDCD: yes" message throughout the track when HDCD is detected for the track, and there's another field that reports if HDCD is currently active.

You can't convert your tracks into 24-bit HDCD decoded files if the HDCD info isn't detected in them. The HDCD bits in the file are the instructiosn that tell what needs altering and how, without them there's nothing to process. But if the HDCD info was detected, you could convert the files by making sure output bitdepth is 24-bits, and in Processing options tick the "Enable decode postprocessing" checkbox.

I'd not use the HDCD decoder to permanently alter the original lossless files that you store. If you read the long thread I linked you can for example see that software HDCD decoding is based on reverse-engineered Windows Media Player decoder but the original implementation already had bugs that it didn't decode things correctly. Then the kode54 conversion included the same bug but also changed decoding in optimizations to no longer be bit-identical with the original. And ffmpeg decoder is based on same old foobar2000 component having all the same issues. If you have permanently decoded the files with such decoder, your files are permanently "wrong". And there's no telling if WMP decoder is 100% perfect either. Perhaps in the future someone reverse-engineers the original HDCD mastering system and creates even better decoder. If you keep the original HDCD files as they are, you can always benefit from future improvements and corrections.

Re: Getting the HDCD component to decode

Reply #2
Looks like you are doing the right thing, which likely means the only thing wrong is the HDCD logo that shouldn't ever have been there.

To get the HDCD encoding, they had to use one of the Pacific Microsonics ADC/DAC devices. Those would put HDCD packets in the dither even if no HDCD features were ever used. If it doesn't have any - then it is unlikely that it was ever through any of those (not cheap) processors at all. (Except if you have done lossy processing on your CD rips, then you cannot expect anything like this to work.)

Bottom line is: if it isn't detected as HDCD, you do not want to treat it as such. And even if it is detected as HDCD, it is not given that it should be treated as such.

Also, you "shouldn't convert until you have to". In fb2k you can decode upon playback. Here is an updated component that closer matches what Windows Media Player does (Microsoft owns HDCD).