PDA

View Full Version : HDCD Software Decoder


cjk32
21st August 2007, 22:57
Hello all,

I've seen comments from a few people wanting to know how hdcd works, so I decided to take a look at it as an academic exercise.

Attached is a 'reference decoder', which reads a 16-bit wav from from stdin, upconverts it to 24-bit using embedded hdcd information where present, and writes the output to stdout. To use, simply run:

hdcd.exe < 16bit.wav > 24bit.wav

If embedded hdcd information is detected, a notification will be written to stderr. Non hdcd's will also work, although the only result will be to halve their volume.

Let me know how you get on,

Chris

cjk32
22nd August 2007, 10:01
Until the attachment's approved, it can be downloaded from,

http://www.srcf.ucam.org/~cjk32/hdcd/hdcd.zip

cjk32
24th August 2007, 12:04
and if anyone wants binaries for different platforms, please let me know.

henryho_hk
2nd September 2007, 01:58
Excellent work! I want to use it in my audio conversion batch. It's too bad that non-HDCD materials will have the volume halved. It is possible to avoid the effect or to implement a test mode (e.g. make a quick scan of a few portions and return an errorlevel of 1 for non-HDCD)?

nazg00l
5th September 2007, 09:58
and if anyone wants binaries for different platforms, please let me know.
Ummm... Would it be a big problem for you to compile the program for Linux? Or at least for plain DOS?
(There are several free DOS clones/emulators for Linux; theoretically the current version could perhaps run under Wine emulator, but there are problems with stream redirections, which require the Windows shell, which is not free...)

Onward
8th September 2007, 14:19
A mac (intel/universal) binary would be nice :thanks:

abcx
9th September 2007, 22:24
Looks great. Thanks :)

jolson
11th September 2007, 11:53
And... - any noticable sound improvement?

cjk32
13th September 2007, 13:47
Excellent work! I want to use it in my audio conversion batch. It's too bad that non-HDCD materials will have the volume halved. It is possible to avoid the effect or to implement a test mode (e.g. make a quick scan of a few portions and return an errorlevel of 1 for non-HDCD)?

Apolgies, I've been away for a the past fews days. The volume is halved, both for technical reasons and to maintain bit compatibility with wmp. There is now a test mode, if you download the latest version from the website, and run 'hdcd.exe -h', it'll show you your options.

In general, it's worth looking at the website to check for newer versions. I'll keep the older versions online too, and hdcd.zip will point to the latest 'stable' version.

cjk32
13th September 2007, 13:50
Ummm... Would it be a big problem for you to compile the program for Linux? Or at least for plain DOS?
(There are several free DOS clones/emulators for Linux; theoretically the current version could perhaps run under Wine emulator, but there are problems with stream redirections, which require the Windows shell, which is not free...)

Hi,

If you can give me some pointers to a suitable toolkit, I'll have a go at compiling for DOS.

For other platforms, could you contact me privately. Microsoft want to charge royalties for use of hdcd technology on non MS platforms, so I'd like to keep any such binaries limited to individuals for now.

Regards,

Chris

cjk32
13th September 2007, 13:51
A mac (intel/universal) binary would be nice :thanks:

Could you contact me privately, see my previous post.

cjk32
13th September 2007, 13:54
And... - any noticable sound improvement?

Well, for most HDCDs, the decoded cd will sound better than the original due to the removal of the peak compression the was applied during encoding.

Whether the 24bit decoded version will sound audibly different from a 16bit downsampled version of the same is entirely different question. Anyone care to do some ABXing?

Regards,

Chris

bxxxb
19th September 2007, 19:40
Hi, probably stupid question, but is it possible to make a HDCD software encoder?

Tnx....

henryho_hk
21st September 2007, 08:27
Anyone care to do some ABXing?

It's really difficult ABX'ing uncompressed sound with computer audio devices.

BTW, I have problems working with flac.exe and hdcd.exe in a pipe chain. When I do something like "flac -d in_hdcd16.flac - | hdcd | flac -c - out_24.flac" (not the exact commandline, but you can get the idea), flac.exe will prompt an error saying no audio data found. Does anyone have the same problem?

cjk32
21st September 2007, 10:12
Hi, probably stupid question, but is it possible to make a HDCD software encoder?

Tnx....

It's certainly feasible to create an encoder that supports the same features that the decoder currently does. The only non trivial point would be to produce a good dithering system, ideally as close to the one used in the original encoders, although I expect a little bit of reading would make this fairly simple.

Less simple is to be able to use dynamic filter switching. This requires knowledge of the filter's characteristics (hopefully gleanable from test tracks played through an upsampling decoder), as well as an algorithm to choose which filter to use.

On the other hand, whether there is any actual use for an encoder is another question. I'd really like to perform / see the results of an ABX between the following:

A) 24 bit original encoder that's been hdcd encoded and decoded
B) 24 bit original truncated / dithered to 16 bit (and then padded back to 24 bit if it makes the technical details any easier)

The other benefit I should probably mention is that tracks encoder using peak extension and gain adjustment will play back rather compressed on non hdcd players. In some cases, this may well be what you want, e.g. car audio, portable music players.

I suspect I'll probably end up writing an encoder just to play with. It might well make ABXing things a lot easier!

Regards,

Chris

cjk32
21st September 2007, 10:18
It's really difficult ABX'ing uncompressed sound with computer audio devices.


How so? Is it just getting a sufficently good signal out of the computer so as to make the differences even measurable?

BTW, I have problems working with flac.exe and hdcd.exe in a pipe chain. When I do something like "flac -d in_hdcd16.flac - | hdcd | flac -c - out_24.flac" (not the exact commandline, but you can get the idea), flac.exe will prompt an error saying no audio data found. Does anyone have the same problem?

Which version are you using? Versions before r172 had problems when being piped to (windows doesn't like it if you fseek on a pipe). This was fixed in r172, although I'd strongly recommend using r185 instead, as r172 had some serious problems when peak extend was used along with gain adjustment. I think I'll probably remove r172, and when I've had a few reports of success, make r185 the next version.

Regards,

Chris

henryho_hk
24th September 2007, 10:49
Yup, I think mainstream computer audio has difficulty reproducing good signals for us to ABX'ing these "lossless" signals. The first problem would be probably be the dynamic range. I am now actually trying it (16bit dither by foobar, on-board ALC888, desktop speaker). I know headphones would be better but the audio output is too high and too noisy. I wonder if Live24 would do a better job.

R185 is doing great at piping. Something like "flac -d -c hdcd_orig_16bit.flac | hdcd | flac -5 -f - -o decoded_24bit.flac" is now working perfectly. Thanks.

A foobar plugin would be great too.

cjk32
24th September 2007, 16:51
R185 is doing great at piping. Something like "flac -d -c hdcd_orig_16bit.flac | hdcd | flac -5 -f - -o decoded_24bit.flac" is now working perfectly. Thanks.

Glad to see that it's working.


A foobar plugin would be great too.

Ive no experience with foorbar at all, and am highly unlikely ever to write such a plug in. However, I am finalising an API to the code, and will release the necessary headers along with a static and dynamic library should anyone wish to implement this themselves.

Regards,

Chris

henryho_hk
26th September 2007, 11:17
What does it mean by "Transient filter (Unsupported)"?

cjk32
27th September 2007, 09:46
What does it mean by "Transient filter (Unsupported)"?

HDCD allows the use of three features: peak extend, gain adjustment and reconstruction filter switching. Windows media player supports peak extend and gain adjustment, and it has hence been possible to fully implement these features.

Filter switching, however, only makes sense when you are upsampling, something which wmp doesn't do, and there's hence no reference to implement it from. Investigation of various test CDs and various (usually contradictory) literature has led to the conlusion that there are only two filters available at playback, the normal filter and the transient filter.

The reason for this conlusion is that of the three bits of each hdcd code remaining after peak extend and gain adjustment, wmp abandons two, but explicitly stores the remaining one (suggesting that this is the only important remaing bit, giving only two options).

An ivestigation of when this bit was set was what lead to the conclusions that it is intended to cover transients. If you take a look at,

http://www.srcf.ucam.org/~cjk32/hdcd/transient_filter/Van%20Halen%20-%201984%20-%2003%20Panama.PNG

the right channel is untouched, and the left channel shows that value of this remaining bit. It is set to for a period covering each of the drum beats, and similar behaviour is observed with many other tracks.

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,

http://www.srcf.ucam.org/~cjk32/hdcd/transient_filter/

These are a frequency sweep and an impulse train with hdcd codes embedded to either enable the normal or trainsient filter (_nf.wav, _tf.wav). If anyone does have a go with these, please don;t put the impulse train through speakers (or amp?), I can't imagine it'll do them any good.

Chris

rasth
29th October 2007, 00:23
Hi Chris,

Will this help you figure out those transient bits?

I downloaded your files and made a test CD. One Mark Knopfler HDCD song and your 4 test files in this order.

1_Cannibals_08.wav
2_hf_sweep_nf.wav
3_hf_sweep_tf.wav
4_impulse_train_nf.wav
5_impulse_train_tf.wav

I played the CD with RCA SPDIF to a late-90's vintage Parasound DAC1600. The HDCD light came on for all the tracks.

The Parasound has the original PMD-100 chip configured to decode HDCD, oversample 8X and feed the Burr-Brown DACs.

I connected the analog out through a passive volume control. ADCOM SLC-505. Then to the line in input on a PC with NVidia sound chipset. Asus A7N8X-E.

Then I recorded a 24-96 wave file of the line in. If you would like the file , let me know the best way to get it to you. It's too big for email. 26.6 mb compressed with flac. I cut off most of the Knopfler song and left the ending in.

jhsjhs
14th December 2007, 17:21
Hello all,

I've seen comments from a few people wanting to know how hdcd works, so I decided to take a look at it as an academic exercise.

Attached is a 'reference decoder', which reads a 16-bit wav from from stdin, upconverts it to 24-bit using embedded hdcd information where present, and writes the output to stdout. To use, simply run:

hdcd.exe < 16bit.wav > 24bit.wav

If embedded hdcd information is detected, a notification will be written to stderr. Non hdcd's will also work, although the only result will be to halve their volume.

Let me know how you get on,

Chris
Hi Chris, sorry for this maybe stupid question. Why is there less dynamic (loudness) after converting the wav-files with your really great tool from 16 bit to 24 bit and how can i correct this loss? Rgds, Joerg

sax512
16th January 2008, 15:07
Hi guys. I'n a new entry on this forum and I posted a thraed where I was looking for information about handling hdcd. Here is the link:

http://forum.doom9.org/showthread.php?t=133756

I resume my questions here:

Can I convert high resolution traks into HDCD?
Can I read HDCD without ripping my flacs, ape or whatever into cds?

Lookink through this thread I noticed that you were speaking about how wmp decodes hdcd. My english isn't so good so I didn't get all the stuff about filters. I think I understood that wmp doesn't decode hdcd in a full and proper way. Am I wrong?

Anyway, I also downloaded hadc.exe but wasn't able to use it. Actually I'm not quite sure what it's for. Is it a player that can decode hdcd? How can I play a track with it?

An last, can I play hdcd with wmp in OsX?

Thanks for your further answers.

sax512
23rd January 2008, 11:08
can anybody help me with this? :confused: :confused: :confused:

:helpful:

henryho_hk
24th January 2008, 02:33
I don't know there is any HDCD encoding software around for your raw tracks. For your APE and FLAC, you can decode them into 16-bit WAV and then further decode it into 20-bit WAV (though in 24-bit format) using cjk32's program.

sax512
24th January 2008, 12:27
Thank you. Actually Ihavent been able to make hdcd.exe to work. I downloaded it but when I open it there's just a black screen. I'm not so skilled with programs so if someone can explain me precisely how to use it that would be great..

henryho_hk
25th January 2008, 06:05
That's because HDCD.exe is a command-line program without graphical user interface.

sax512
25th January 2008, 12:59
I would have guessed, but how can I use it? It's the first time I'm dealing with something like this...

bertox
29th January 2008, 23:51
Oh, cjk32 thank you very much for this app !!! Yeeaaahhh!!!! This is the REAL thing.:D

Now my King Crimson HDCD stuff sound as it should be.

Adub
30th January 2008, 00:05
sax,
We can't just tell you how to use the command line and expect you to be an expert. You have to learn and experiment.

First of, open a new command line by running the cmd command in your Run Dialogue. Then navigate to were the executable that you downloaded is using the command "cd ..."

Like cd "Documents and Settings/you/Desktop/"

and then type the HDCD decoder executable name, like

hdcd.exe

or something like that. It should be pretty self explanatory from there.

bertox
30th January 2008, 00:34
yes. my config:

put the source file in the same folder and write (in command line, Merlin7777 following) this:

hdcd.exe -o outputfile.wav sourcefile.wav

- ALL NAMES WITHOUT SPACES BETWEEN WORDS -
- SOURCE AND OUTPUT FILE NAMES MUST BE DIFFERENT -

quite simple.

example: D:\Docs\MY Music\HDCD\hdcd.exe -o whereismybrainRESTORED.wav whereismybrain.wav

Ah! If the app shows "HDCD not detected" alert, means that you source file IS NOT HDCD CODED.

I'LL RECOMMEND an "Microsuck" app called PowerToys, which give you a "direct from any folder you chose" with your right click button Command Line function.

good luck.

sax512
1st February 2008, 13:23
Thank you. I'll try to make it work.

bertox
1st February 2008, 19:41
You're welcome. Put here your results please.

sax512
3rd February 2008, 13:04
Hi there. I had been able to decode with this program. It's very simple once you do it for the first time. I wonder how it can decode the 24 bits out of a 16 bit wav if hdcd is property of microsoft. Maybe Chris can answer this question. I'm wondering also if when it comes to listening from an HDCD with WMP or listening to the same cd encoded as a 24 bit wav there is any difference. That brings me back to the question I made about the post when it's said that WMP does something with filters which I couldn't understand complitely. The post is this:


HDCD allows the use of three features: peak extend, gain adjustment and reconstruction filter switching. Windows media player supports peak extend and gain adjustment, and it has hence been possible to fully implement these features.

Filter switching, however, only makes sense when you are upsampling, something which wmp doesn't do, and there's hence no reference to implement it from. Investigation of various test CDs and various (usually contradictory) literature has led to the conlusion that there are only two filters available at playback, the normal filter and the transient filter.

The reason for this conlusion is that of the three bits of each hdcd code remaining after peak extend and gain adjustment, wmp abandons two, but explicitly stores the remaining one (suggesting that this is the only important remaing bit, giving only two options).

An ivestigation of when this bit was set was what lead to the conclusions that it is intended to cover transients. If you take a look at,

http://www.srcf.ucam.org/~cjk32/hdcd/transient_filter/Van%20Halen%20-%201984%20-%2003%20Panama.PNG

the right channel is untouched, and the left channel shows that value of this remaining bit. It is set to for a period covering each of the drum beats, and similar behaviour is observed with many other tracks.

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,

http://www.srcf.ucam.org/~cjk32/hdcd/transient_filter/

These are a frequency sweep and an impulse train with hdcd codes embedded to either enable the normal or trainsient filter (_nf.wav, _tf.wav). If anyone does have a go with these, please don;t put the impulse train through speakers (or amp?), I can't imagine it'll do them any good.

Chris

So the final question is: can hdcd or WMP decode HDCD with the same bits of an hardware HDCD decoder?

Thanks.

sax512
5th February 2008, 22:54
Anybody knows???:confused:

bertox
6th February 2008, 03:47
The answer is : yes.

But, there are some things that i'm not understanding yet when i decoding with HDCD soft decoder....

I try to talk to cjk32 via PM but not answer mis questions...

Seems that this app is abandoned at all...

sax512
6th February 2008, 20:08
Yes, I tried to send a PM too but didn't reply. However it's good to know that it's so, even if I still don't understand how it can work.

cjk32
7th February 2008, 12:54
Yes, I tried to send a PM too but didn't reply. However it's good to know that it's so, even if I still don't understand how it can work.

Hi All,

I've not abandoned the app, just been rather busy lately, and as I've not logged in here, I've not picked up any of the private messages. Hopefully, by the middle of next week I'll have some more free time, and will go through and address all the point accumulated in the thread.

For future reference, you're probably best contacting me via email, cjk32@cam.ac.uk.

Regards,

Chris

bertox
7th February 2008, 16:19
thank you....after all..

johnsonlam
5th March 2008, 06:47
Hi All,
I've not abandoned the app, just been rather busy lately, and as I've not logged in here, I've not picked up any of the private messages. Hopefully, by the middle of next week I'll have some more free time, and will go through and address all the point accumulated in the thread.
Chris

Thank you for your effort, Chris.

Can you improve the program by let it accept parameters so people can make front-end for it?

Command line is clean and simple, but some of the user may prefer drag and drop (like the famous LAMEdrop), it'll be much easier for them.

Once again, thanks for sharing the program with us.

bertox
7th March 2008, 04:18
Try to search for Chris in the Hydrogenaudio forums..;)

LogicDeLuxe
30th May 2008, 15:57
It's certainly feasible to create an encoder that supports the same features that the decoder currently does. The only non trivial point would be to produce a good dithering system, ideally as close to the one used in the original encoders, although I expect a little bit of reading would make this fairly simple.Couldn't you just make it read a separate dither wav file, so the encoder don't have to generate it for itself?

madshi
7th September 2008, 21:15
Just to let you guys know: Chris has been so kind to let me use his HDCD decoder in my eac3to software:

http://forum.doom9.org/showthread.php?t=125966

leeperry
5th January 2009, 13:22
just used it on my HDCD copy of "In The Court Of King Crimson"....results are most impressive :eek:

it's like the regular CDDA copy was overcompressed.....and now sounds perfect on my MDR-CD3000 reference headphones :)

now off to find more HDCD to rip :D

:thanks:

henryho_hk
6th January 2009, 03:07
I wrote a summary on foobar setup for HDCD decode:

http://www.mingo-hmw.com/forum/viewthread.php?tid=75806&extra=page%3D1

jolson
13th January 2009, 12:33
What one with all his CD's ripped to a music server would need is a "HDCD Check Spider" that gets a top folder as input and outputs a nice list of all HDCD tracks in the subfolders in a log file. This without the "An error occured while writing to file (The encoder has terminated prematurely with code 0; please re-check parameters)" using HDCD.exe in Foobar, and without the time-consuming thrown-away conversion. (I'm not sure I recall correctly, but does HDCD.exe always decode each track even if you just want to know if the track is HDCD-enabled? Does it have to, or is it just something the author hasn't found to be a problem?)

madshi
13th January 2009, 12:54
You can use "eac3to some.wav" or "eac3to some.flac". It will just look at the file, decode/read in the first few samples and then tell you whether it's HDCD or not.

chairlgmc
30th January 2009, 00:00
Just a quick note to Chris , Madshi and the rest of you to let you know that i am now enjoying joni with the little bit extra the hdcd brings.

and I only had to learn command line skills!

Thank you all

Anthony

leeperry
5th February 2009, 13:10
I wish there was a way to do batch conversion for full albums, but well it's already awesome that it exists :)

dBpoweramp also does HDCD apparently, so it might be a better option when you got many albums to decode :o

TinTime
9th February 2009, 06:30
What one with all his CD's ripped to a music server would need is a "HDCD Check Spider" that gets a top folder as input and outputs a nice list of all HDCD tracks in the subfolders in a log file.

Just read this and was intrigued, so I knocked up a batch script. I was pleasantly surprised to find out I had two HDCDs I never knew I had! Beck and the Beach Boys. So thanks very much to Chris and Madshi for their work on this.


Anyway, in the off-chance that anyone else finds it useful the script is below. It uses Madshi's all-conquering eac3to tool so you'll need that too. The script is not very smart. It assumes that eac3to will output a line to it's log that looks like
FLAC, something, something, something <HDCD>, something...
If this changes it won't work.

Save the text with notepad to a .cmd file (say hdcd.cmd) to the desktop or wherever, changing the set eac3to= line to your eac3to path, and the set type= line to wav if your music isn't flac. Then drag your top music folder onto the script icon and wait... Or test on a small folder of flac files first of course.

It will output two text files - one (probably very big) with non-HDCD filenames and one (probably very small) with the HDCD filenames.

NB. This works for me on WinXP. I don't know enough about batch scripts to know whether this works on Vista or not.

::-------------------------------------------------------------------------------------------------
:: 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

leeperry
14th April 2009, 13: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, 14: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?