I've been converting my CDs to WMA 9.2 Lossless, and I just noticed that a CD with HDCD gave 16-bit WMAs, rather than 24-bit, which the HDCD decoding plugin should produce, so I did some investigation.
I took a 16-bit WAV rip of the track, with no DSP plugins or tags, and then converted it to a variety of formats, with and without the HDCD plugin. I then converted the formats back to WAV (again, no DSP) and calculated MD5 hashes on the files.
Here are the results:
First, for reference, the original WAV converted to 24-bit with the HDCD DSP plugin:
Strangely, I found that simple WAV>WAV conversion with no DSP gave two files that should be the same but have different hashes. Perhaps this is because of some meta-data (even though I removed all tags). In any case, converting both of these files to 24-bit with the HDCD plugin yields identical results.
Secondly, converting to FLAC:
The output hashes matched the WAV references above, and 16-bit or 24-bit files were produced automatically, depending on the HDCD plugin (or source file), so it appears the HDCD DSP works fine for FLAC.
Thirdly, converting to WMA (9.2 Lossless). In the options for WMA 9.2 Lossless, you can manually select the sample rate and bit depth of the output. I think this might be affecting the HDCD DSP. I had thought that selecting 16-bit and enabling the HDCD plugin would produce 16-bit WMAs with normal CDs, but 24-bit WMAs with HDCDs, however, it always produces 16-bit WMAs. Similarly, selecting 24-bit always produces 24-bit WMAs (even for non-HDCD CDs), which defeats the purpose of the plugin. In any case, this raises the question: if you select 24-bit, does the HDCD decoding work? That is, are the files that are produced the same as those from HDCD decoding above?
Converting WAV to WMA produces different results depending on the HDCD DSP plugin, whether 16-bit or 24-bit. Crucially, the 24-bit WMA output with HDCD is not the same as the 24-bit output from WAV or FLAC. Neither is it the same as 24-bit WMA output without the HDCD plugin (i.e. simple increasing bit-depth).
What if we convert those 24-bit WMAs back down to 16-bit?
So the WMA bit-depth increase process is reversible.
Am I missing something, or does it look like 24-bit doesn't work properly with WMA? Because if I have a 24-bit WAV, convert it to 24-bit WMA, and then back to 24-bit WAV, the hashes don't match! Although the verification check in dBPowerAmp doesn't report any failures.
Would really appreciate some authoritative input on this one...
I took a 16-bit WAV rip of the track, with no DSP plugins or tags, and then converted it to a variety of formats, with and without the HDCD plugin. I then converted the formats back to WAV (again, no DSP) and calculated MD5 hashes on the files.
Here are the results:
First, for reference, the original WAV converted to 24-bit with the HDCD DSP plugin:
Code:
B5EB64FC234758F85C6C179715C5AF67 Original 16-bit WAV rip EAD76AD5CB8F72B021BA84ABD2487FD3 Original > WAV (with HDCD, so 24-bit) D94A859A25FF48EFA8B71792B1B2E81C Original > WAV (no DSP, so 16-bit) [Henceforth labelled as Original (2)] EAD76AD5CB8F72B021BA84ABD2487FD3 Original (2) > WAV (with HDCD, so 24-bit) [Henceforth Original-HDCD]
Secondly, converting to FLAC:
Code:
D94A859A25FF48EFA8B71792B1B2E81C Original > FLAC (no DSP, so 16-bit) D94A859A25FF48EFA8B71792B1B2E81C Original (2) > FLAC (no DSP, so 16-bit) EAD76AD5CB8F72B021BA84ABD2487FD3 Original > FLAC (with HDCD, so 24-bit) EAD76AD5CB8F72B021BA84ABD2487FD3 Original-HDCD > FLAC (no DSP, but 24-bit))
Thirdly, converting to WMA (9.2 Lossless). In the options for WMA 9.2 Lossless, you can manually select the sample rate and bit depth of the output. I think this might be affecting the HDCD DSP. I had thought that selecting 16-bit and enabling the HDCD plugin would produce 16-bit WMAs with normal CDs, but 24-bit WMAs with HDCDs, however, it always produces 16-bit WMAs. Similarly, selecting 24-bit always produces 24-bit WMAs (even for non-HDCD CDs), which defeats the purpose of the plugin. In any case, this raises the question: if you select 24-bit, does the HDCD decoding work? That is, are the files that are produced the same as those from HDCD decoding above?
Code:
D94A859A25FF48EFA8B71792B1B2E81C Original > 16-bit WMA (no DSP) D94A859A25FF48EFA8B71792B1B2E81C Original (2) > 16-bit WMA (no DSP) ED49DA6B2F4691A156B504B7D62E055B Original > 16-bit WMA (with HDCD) ED49DA6B2F4691A156B504B7D62E055B Original (2) > 16-bit WMA (with HDCD) 1C497AD0814A96098A9ADF4A601A7847 Original > 24-bit WMA (no DSP) 1C497AD0814A96098A9ADF4A601A7847 Original (2) > 24-bit WMA (no DSP) 69830F53BF0C8BD5D81B2C93907C62B1 Original > 24-bit WMA (with HDCD) 69830F53BF0C8BD5D81B2C93907C62B1 Original (2) > 24-bit WMA (with HDCD) 69830F53BF0C8BD5D81B2C93907C62B1 Original-HDCD > 24-bit WMA (no DSP)
What if we convert those 24-bit WMAs back down to 16-bit?
Code:
ED49DA6B2F4691A156B504B7D62E055B 24-bit WMA (from HDCD, 6983... above) > 16-bit WMA (no DSP) D94A859A25FF48EFA8B71792B1B2E81C 24-bit WMA (no HDCD, 1C49... above) > 16-bit WMA (no DSP)
Am I missing something, or does it look like 24-bit doesn't work properly with WMA? Because if I have a 24-bit WAV, convert it to 24-bit WMA, and then back to 24-bit WAV, the hashes don't match! Although the verification check in dBPowerAmp doesn't report any failures.
Would really appreciate some authoritative input on this one...
Comment