View Full Version : HDCD Software Decoder
leeperry
14th April 2009, 12:46
there's a guy on head-fi that claims that hdcd.exe doesn't completely decode the HDCD data : http://www.stevehoffman.tv/forums/showpost.php?p=4325587&postcount=13
rasth
4th June 2009, 13:47
hardware HDCD decoder, but apparently it's not for sale
http://www.diyaudio.com/forums/showthread.php?s=&threadid=141108
wowcolors
4th November 2009, 17:49
I am bringing this back from the dead.. I have been doing a ton of reading on HDCD and it seems that HDCD.exe there is question if HDCD fully decodes HDCDs
Here are some more links explaining that there is more to HDCD then what is done with this software:
http://www.stevehoffman.tv/forums/showpost.php?p=4225594&postcount=35
http://www.stevehoffman.tv/forums/showpost.php?p=4228439&postcount=45
Here are some other helpful links that took some time to find because the sites no longer exist and you must pull them from the web archive. There are some great PDFs and technical documents on these sites:
Last Pacific Microsonics HDCD site (original creators of HDCD): http://web.archive.org/web/20010118222700/http://www.hdcd.com/
After Microsoft's purchase of Pacific Microsonics: http://web.archive.org/web/20010301222014/http://www.hdcd.com/
After Microsoft changed the site: http://web.archive.org/web/20050520000750/http://www.hdcd.com/
Edit: I did not realize that the links I posted in this thread are of the same guy listed in an above post
wowcolors
4th November 2009, 21:42
Here are some interesting findings from some tests I have done, it appears HDCD.exe output is different then WMP decoding of HDCDs, I am still looking into this and trying other things so I may be missing something, I will post a update after trying a few more HDCDs and chronotrom WMP wave output plugin (http://www.chronotron.com/content.php?page=products#wavout)
EDIT: My windows original direct sound capture tests shown in this post are invalid, WMP and HDCD.exe decoding of HDCD content do match when using a WMP wav out plugin, see my post below.
EDIT 2: Removed waveform as not to confuse people, see waveform in post below to see that WMP and HDCD.exe have the same output
wowcolors
5th November 2009, 18:32
Well I am happy to admit that something must be screwy with the windows direct sound capture method and HDCD.exe decoder WAV output is the same as WMP WAV output plug-in output, my first comparison is invalid.
The original CD EAC ripped WAV vs the direct sound capture of software playback of the original CD where almost identical but the same comparison done with WMP HDCD playback and HDCD.exe decoded wav were not, it may be that direct sound capture gets messed up in 24-bit. Either way the WMP wav out plug-in wav file matches the HDCD.exe decoded WAV, so it appears HDCD.exe is correctly decoding HDCD content. Attached is the waveforms and a link to the full-size screen shot.
So hope this serves as future reference to others doing comparisons or investigations into HDCD.exe decoding and clears up some of the other questions in the post above.
ACrowley
7th November 2009, 10:54
@wowcolors ...HDCD.exe decoded waves look like Dynamic Range Compression
Vick
1st December 2009, 20:28
....The intention is to try to add upsampling to the code once the filter's responses are known. I'm hoping that someone with a hardware HDCD decoder (which should be upsample and switch filters) will be able to play the following test tracks through it to ascertain the impulse / frequency response,.....
Hello Chris
I have asked Ross L (post (http://www.diyaudio.com/forums/digital-source/141108-stand-alone-hdcd-decoder-project.html)) for decoding your test tracks (transient_filter). Output file is 88.2kHz/24bit. Link: files (http://www.mediafire.com/?sharekey=11f28fb01e6f9bcc07258ee67c679e4abec04a7deda856529d4bfef7ef5beeff)
Unfortunately there is no difference between _nf.wav and _tf.wav files.
Can be necessary to enable bit intermittently?
Thnx
Vick
p.s. sorry for my poor english
gwir
26th February 2010, 11:36
Hello,
I have an hdcd (various artists for the masses) labeled hdcd, recognise by WMP as an hdcd, but the extracted wav files aren't by the tool hdcd.exe. Is it "normal"? Maybe it's related to the post of leeperry. I can post somewhere one of this files.
Thx
GwiR
Avrin
1st March 2010, 10:55
It would be nice for the utility to have a "force Peak Extend" mode (that applies the Peak Extend transform to the entire file even if it is has no Peak Extend or HDCD flags set), since there are HDCDs that are not properly flagged and/or recognized by Windows Media Player. The most famous example, probably, is the Fabulous Sound Lab release of "A Hard Day's Night". The entire series of the first six Beatles albums is mastered in HDCD using peak compression, and all CDs in the series, except AHDN, are recognized as HDCDs, and Peak Extend is properly applied during playback/decoding. The AHDN CD, despite being mastered in absolutely the same way, is not even recognized as an HDCD. Applying a rough imitation of Peak Extend in Adobe Audition makes the album sound much better. And there are other examples of CDs that would definitely benefit from forced Peak Extend
Vick
22nd March 2010, 19:31
I analyzed an image of the "A Hard Day's Night" CD too.
Results:
Please Please Me; Peak L 30922 -30921; Peak R 30923 -30923; Packets: 20066; Peak extend: Enabled
With The Beatles; Peak L 30923 -30922; Peak R 30865 -30920; Packets: 20357; Peak extend: Enabled
a hard day's night; Peak L ***** -32768; Peak R 31475 -31101; Packets: 12; Peak extend: Enabled
Beatles For Sale; Peak L 32767 -32768; Peak R 32126 -32076; Packets: 20913; Peak extend: Enabled
Help; Peak L ***** -32274; Peak R 31225 -30654; Packets: 20747; Peak extend: Enabled
Rubber Soul; Peak L ***** -31486; Peak R 30062 -30351; Packets: 21820; Peak extend: Enabled
Swedish Radio Show; Peak L ***** -32768; Peak R ***** -32768; HDCD not detected
First 2 albums normalized to exact 30923 (94.37%).
In AHDN were gone more 20000 packets (and has been normalized to 100%)
Following albums are normalized to 100% and less.
In last album were gone all packets (and has been normalized to 100% too)
Any change (volume or filtering) destroys a HDCD packets/flags, and it is not recognized as HDCD.
It's possible the mastering engineer casually normalized (changed volume) CD before its pressing.
To restore the AHDN CD, it is necessary to denormalize it and add HDCD packets.
2 Avrin: what CD is same as AHDN?
MvB
20th January 2013, 21:00
Hi there,
i always wondered why my backup of Kari Bemnes "Norwegian Moods" sounded much worse when burned from wavs i extracted with eac before from my original disc (HDCD, but not labeled as one). I found out why:
while looking through the internet collecting information about hdcd i found an article from a guy called _Ilya_ (http://www.head-fi.org/t/151329/hdcd-technology-in-detales):
"Data range from -30000 : 30000 is linear. Range above and below is non linear. Multiplier coefficients are recorded in sub-channel (part of audio CD format). Sub channel is not big enough to keep additional 4 bits, but it can keep multiplication coefficient.
In other words HDCD data format is a 2 pieswise interpolation to logarithmic scale. Full range is appropriate to 20 bit. Data precision at any point is 16 bit. (technology similar to voice A-law, M-law compression).
HDCD played on standard CD equipment will distort high levels.
HDCD played on separate transport and processor may be distorted because if sub channel is not transmitted, but processor is HDCD capable, processor will try to apply HDCD decoding because it will find HDCD patterns in upper levels, but without sub channel it does not know how to amplify it. The result is floating level (The same may be achieved if you copy HDCD using NERO but do not copy sub channel).
HDCD can not be saved in .wav because sub channel will be lost. HDCD processor will find patterns in peaks, led will flash."
I thought to myself, that would be an explanation why my copies sound so strange, lifeless.
I made a copy with clonecd, activating "read infos from subchannels" and made an image.
Before burning the image, i set the option "don't correct subchannel streams". Burned with Burning Speed 1x, because the subchannels don't have any crc correction, thought it would be safer that way.
And ... got an epiphany after inserting the fresh burned cd in my hdcd-player: I sounded exactly like the original. Finally. Now i know why. Have to rip my other hdcds again as an image with subchannel information.
Without the subchannel - Information it's quite possible you just get quasi 15 bit resolution in your 20 bit file with no dynamic expansion at all.
ashman5
29th March 2013, 19:10
Anyone have a batch file that will use hdcd.exe analyze each wav/flac in a folder and report the HDCD specifics (Peak extend, min gain, max gain, Transient filter) for each file?
My coding skills are nonexistant and doing it manually is tedious.
I'm currently using hdcd -a for each file and that gives me:
C:\Temp\MUSIC\Album>hdcd.exe -a 1.wav
HDCD Detected
Features Used:
Peak extend : Enabled permanently
Minimum gain : -4.0dB
Maximum gain : 0.0dB
Transient filter (Unsupported) : Never enabled
anyway to automate this?
thanks
Sparktank
19th April 2013, 01:28
::-------------------------------------------------------------------------------------------------
:: Check files for HDCD encoding
:: Writes two text files to source directory - hdcd files.txt and non hdcd files.txt
::-------------------------------------------------------------------------------------------------
@echo off
:: change these two
set eac3to=D:\Vtemp\programs\eac3to\eac3to.exe
set type=flac
:: set other variables and create new files
set sourcedir=%1
set sourcedir=%sourcedir:"= %
if "%sourcedir:~0,1%"==" " set sourcedir=%sourcedir:~1,-1%
echo HDCD files>"%sourcedir%\hdcd files.txt"
echo non HDCD files>"%sourcedir%\non hdcd files.txt"
if exist "%sourcedir%\eac3to.log" del "%sourcedir%\eac3to.log"
for /f "usebackq tokens=1 delims=" %%A in (`dir "%sourcedir%\*.%type%" /b /s /on`) do (
call :sub1 "%%A"
)
pause
exit /b 0
::-------------------------------------------------------------------------------------------------
:sub1
set inflac=%1
"%eac3to%" %inflac% -log="%sourcedir%\eac3to.log"
for /f "usebackq tokens=1-6 delims=," %%A in ("%sourcedir%\eac3to.log") do (
if "%%A"=="FLAC" set hdcdcheck="%%D"
)
if "%hdcdcheck:~-6,-2%"=="HDCD" (
echo %inflac%>>"%sourcedir%\hdcd files.txt"
) else (
echo %inflac%>>"%sourcedir%\non hdcd files.txt"
)
del "%sourcedir%\eac3to.log"
exit /b 0
Windows 7 (x64)
I turned echo on and threw in some pauses.
I've set the eac3to path but dragging and dropping a single file shows...
E:\Music\Zack Hemsey - Mind Heist EP>for /F "usebackq tokens=1 delims=" %A in (`dir "E:\Music\Zack Hemsey - Mind Heist EP\01 - Mind Heist.flac\*.flac" /b /
/on`) do (call :sub1 "%A" )
File Not Found
Any idea what's going on?
Or can anyone change this to execute the CMD from the folder?
I don't like drag&drop operations.
I'd rather copy/move the .cmd around and have it execute in the folder with all the files in the same folder.
plonk420
21st August 2017, 17:12
newest versions:
filename SHA-1
SHA-256
hdcd-0.2-win32.zip A91E5D11C2C71F709C776A204688FB301EE82BCA
01525DCA67F02D90666468C50767C92F3B81C226FCE54F79A4ED88D542D7C030
hdcd-0.2-x64.zip 75FBFA100A1E8D34C2D92BD3BA731622D46564AE
1F4FFE6F56C0D5F343314F2DCCE179F3F23856EFDB90607ACA71A81930753EB0
hdcd-0.2-dev.zip FF4D25E25576488F31130DCCB0C3755FD09C43C4
8D39AD4BD99FB0D5B563357CCAFAAD7735D5E12195FF62627A81E5412910AB7C
site (not sure how exposed OP wants it): hdcd dot cjkey dot org dot uk
TCmullet
23rd February 2025, 00:24
Has there been any discussion of hdcd.exe and HDCD anywhere since the last post here? Either here or any other forum?? The email address cjk32@cam.ac.uk no longer is valid.
I REALLY REALLY want to get current info!
Emulgator
23rd February 2025, 10:03
http://hdcd.cjkey.org.uk/peak_extend/ still works.
To conclude missing information one may consult the datasheets of 2 HDCD ICs:
PMD-100 (28-pin DIP, 44-pin TQFP, 24 pages) and PMD-200 (100-pin TQFP, 59 pages)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.