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: HDCD Decoder (Read 329368 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

HDCD Decoder

Reply #250
OK, after fiddling around for a while I think that I have the status bar info I like:

%codec% | %samplerate% Hz | $info(bitspersample) bits | %channels% | %playback_time%[ / %length%] | %bitrate% kbps | HDCD = $if(%__hdcd%,'yes | ','no')$if(%__hdcd%,PE: %__hdcd_peak_extend% LLE: %__hdcd_gain% TF: %__hdcd_transient_filter%)

The previous one gave a "?" for the HDCD status of a non-HDCD file, while this one gives a "yes" or "no".

HDCD Decoder

Reply #251
OK, my wife is now really angry, because she wanted me to clean our flat, but I've said that first I need to figure out how to make "foo_hdcd" plugin to work. It took some time to read whole 10 pages and in the end I am still bit confused if it works or no. I use foobar 1.1.7, with latest version of HDCD encoder to date - 1.11.  As I said I am not sure if it works or not. I mean - if the output is really "HDCD decoded". I had only 4 CDs that use HDCD technique - Mike Oldfield's "Incantations", "Amarok" and "Tubular Bells" - remasters from around 2001 - and "Lateralus" by Tool. I ripped them in EAC to FLAC files and mostly I listen to them on PC rather than on my inexpensive CD player. My audio equipment was never capable of decoding HDCD, so I find it very usefull to have opportunity to fully unfold potential of sound engeneering techniques from that 4 CDs, especially using my favourite software audio player. But now I find it quite complicated to use this potential. So - my foobar uses DUI interface. I added 2 custom columns - one showing samplerate and other one showing bits per sample value. For all tracks from these 4 CDs both columns have values "44100" and "16" - which is OK and which was expected. Also I added appropiate switches to my status bar, that show info about samplerate, bits  per sample value, and HDCD status (yes/no + PE/LLE/TF) - similar to that from post above. What I see in status bar while I play for example "Incantations Part 1" is: "FLAC  886kbps  ¤  44100Hz / 24 Bit, stereo  ¤  1:39 / 19:07  ¤  HDCD: yes  (Peak Extension: yes, Transient Filter: no, Gain: 0.0 dB)". So - file is 16 bit as it should be, but it looks like output is 24 bit. For rest FLACs, from standard CDs that doesn't use HDCD status bar shows 16 bits. "OK, so it works" I thought. I also played with settings in advanced options - I tried to enable and disable volume halving. And I've heard results - when it was turned on for tracks with PE enabled, music was noticeably quiter than when I switched it to "Never". "OK, so volume is halved then HDCD must be decoded" I thought. Then I opened console and... there was nothing about HDCD. There was nothing like "HDCD detected". I thought that it's the problem with RG, but it was disabled - so I deleted appropiate dll from components folder to permanently disable any RG functionality but still nothing showed up in console. I realised, that my old SB0100 soundcard (SoundBlaster Live!) produces only 16 bit output so I turned on an onboard "Realtec HD Audio" codec (ALC892), changed output in foobar to "Speakers" and... nothing changed. File is still 16 bit, output is still 24 bit, halving volume works but console doesn't show any HDCD related info. I assume that if "Output data format" option in foobar config is grayed out, it means that it is configured by OS - in soundcard driver app. So I opened it and I went to "Default Format" tab and set there "output when running in shared mode" as "24 bit 192 kHz". "OK now it had to work" I said to myself and... I noticed that nothing changed... console still doesn't show anything. So my questions are:
1. What are the detailed requirements for 1.11 version of foo_hdcd" to work ?
2. What are all the indicators that HDCD decoding works - but I mean "works absolutely for sure" ?
3. What are the indicators that HDCD decoding doesn't work ?

Regards
Epic

PS
One more thing - is there any possibility to add working custom column showing info about HDCD status? (like "HDCD" when file is HDCD encoded and just show nothing when it isn't or "no"). Nevermind if it will be showed while file is played or permanently. I'm asking because I tried it using many patterns in my Default User Interface, and it never worked - HDCD tracks were always blank or just everything was "HDCD".

HDCD Decoder

Reply #252
There is no information in the console, you must use the specified %__hdcd*% variables, either in the status bar, or possibly in a playlist which supports dynamic info updates.

HDCD Decoder

Reply #253
Peak Extend (PE) is either on or off for the entire song (actually the entire album except in the case of compilations). One the other hand LLE varies throughout the song. But here's the catch -- it's useless!

Thanks for your remarks. It seems to me that the whole HDCD thing was marketing above all, and those albums mastered as HDCD rarely ever take any advantage of the technology. The only examples I've seen so far were HDCD has a considerable effect are those pop CDs which are mastered too loud, so that the peak compression kicks in all the time. I suppose HDCD works best as some perverted countermeasure against loudness war mastering...

2. What are all the indicators that HDCD decoding works - but I mean "works absolutely for sure" ?
3. What are the indicators that HDCD decoding doesn't work ?

Whenever %__hdcd% reads yes, HDCD material is detected and decoded according to what's specified by the control bits (peak extension and low level extention). If neither low level extension (%__hdcd_gain% reads permanently 0.0dB) nor peak extention are enabled, there is no decoding needed, so the decoder recognizes the HDCD bits bot does nothing to the audio, just adding empty bits.

The funny thing is that many so-called HDCDs (from my experience even most of them) don't have either of those features enabled, yet they are labeled as HDCD. But it only means that they were mastered on a HDCD capable device - they contain nothing that needs to be decoded.

They only contain the control bits that will cause the HDCD light on an HDCD capable player to lighten up, so people in audiophile internet forums can rant about how much better this or that album sounds on a HDCD player, not knowing that there's really no difference at all.

Now you should relax and make peace with your wife

HDCD Decoder

Reply #254
Hmmm... So how do I know that HDCD decoding is NOT working? I mean - I have a file that is for sure HDCD encoded (WAV or FLAC) and I play it in my foobar, but something goes wrong with configuration - software conf. or hardware conf. Then how do I know that there's something wrong?  From my point of view it looks like foo_hdcd plugin can just detect HDCD material and show info about HDCD parameters, but it isn't explicit that it have to be properly decoded, even when it's properly detected. So? What will be explicit sign that HDCD decoding is not working even if this type of encoding is detected ?

HDCD Decoder

Reply #255
What will be explicit sign that HDCD decoding is not working even if this type of encoding is detected ?

The explicit sign is in the %__hdcd% variable. Whenever the plugin is installed and your output format (on Preferences > Playback > Output) is set to >= 24 bit (only XP, it is always 32 bit in Vista/7) and your sound device supports 24 bit (almost any device does today).

Of course foobar doesn't know what happens to the audio after it's been handed over to the sound driver so it can't say "what you are hearing is 24 bit audio", because only the driver knows for sure.

HDCD Decoder

Reply #256
Thak you for your quick reply. Then how about my first question from my first post - what are the detailed requirements for 1.11 version of foo_hdcd" to work ? How about ReplayGain, DSP chain, etc ?

HDCD Decoder

Reply #257
No requirements. foo_hdcd is now implemented as a postprocessor service, so you can do anything you like with DSP, ReplayGain or whatever. It is always applied after the HDCD decoding.

Note that if you want to you convert HDCD material to decoded, 24 bit audio, you have to enable the checkbox "additional decoding" in foobar's converter setup

HDCD Decoder

Reply #258
Many thanks for clarifications. So it looks like everything was working OK since the begining... lol.

HDCD Decoder

Reply #259
I've just figured that the HDCD scan doesn't find the tracks only when the CD is played through autorun. When I use the File>Open Audio CD>Play it works... what could be causing this? and again, scan failing means it won't be decoded?
ps.: when the CD is played through autorun, the failed scan is pretty faster

HDCD Decoder

Reply #260
If I have a 16 bit soundcard,  can I use the foo_hdcd to decode to the 24bit while playing and use a VST to dither to 16 bit?  With the soundcard being 16 bit I can't select 24 bit.    So as the flac is playing does the foo_hdcd process to 24 bit with the peak extend,  then the VST do a proper dither to 16 bit output even with the output device selected as 16 bit?

HDCD Decoder

Reply #261
If I have a 16 bit soundcard,  can I use the foo_hdcd to decode to the 24bit while playing and use a VST to dither to 16 bit?  With the soundcard being 16 bit I can't select 24 bit.    So as the flac is playing does the foo_hdcd process to 24 bit with the peak extend,  then the VST do a proper dither to 16 bit output even with the output device selected as 16 bit?

A 16 bit soundcard is worthless. Even to listen CD's. Why? Because that means it has supercheap DAC's, no analog filtering stage, cheap passive components and power supply - that will lead to a final audio performance level of only 11-13 bits, the rest will be lost in noise.
You need a GOOD soundcard in order to fully benefit of the dynamic offerd by a proper recorded CD or HDCD.

HDCD Decoder

Reply #262
Actually its not a 16 bit DAC  I am using a 24 bit DAC,  but with a a very well designed asynchrous USB to SPDIF 16 bit converter,  designed by the best RFI engineer in the busines.  We can argue the merits of this wonderful 16 bit usb converter vs 24/192 asynch spdif outputs and their issues or answer the original question.  BTW I would love to see a DBT comparing 24 bit HDCD decoded vs the same file dithered to 16 bit.  Remember even a decoded HDCD has typically no more than 40dB dynamic range ~ 7 bit.


Does the HDCD plugin decoding live "work" at 24 bits to the VST which does a proper dither to 16bit if the soundcard in foobar is set to 16 bit?

HDCD Decoder

Reply #263
Personally I don't care for 16 bit output instead of the 20 bit. Why? Beacuse it will be an artificial dither, something that is not in the original signal.
HDCD encoders had one of the best filters at that time, I seriously doubt that any plug-in can compete with that. It will only "damage" that initial quality.

HDCD Decoder

Reply #264
I agree and is why I use a PMD100 DAC,  but there are some instances where a need to "remaster" some titles that had poor studio work.

Hence the question:

Does the HDCD foobar plugin work in 24 bit bit resolution prior to being sent to a VST if the soundcard is 16 bit  ???

HDCD Decoder

Reply #265
The HDCD decoder doesn't care about your sound card capabilities. It would work even if you somehow had an 8-bit sound card and dithered down to that.

HDCD Decoder

Reply #266
Adding to all the HDCD oddities out there I have just discovered an example where an album sounded considerably worse after HDCD decoding! It's the album Saints by the early music ensemble Sequentia, one of their excellent albums covering the medieval repertoire of Hildegard von Bingen. The recording however, is not that excellent - there's some amout of ugly digital clipping during fortissimo passages. Only those passages are affected by peak extension, so basically the only thing that's extended are the distortions, which are twice as loud after decoding! I ended up dithering that album to get rid of the HDCD bits.

 

HDCD Decoder

Reply #267
The HDCD decoder doesn't care about your sound card capabilities. It would work even if you somehow had an 8-bit sound card and dithered down to that.



thankyou

HDCD Decoder

Reply #268
Is there any way this plugin could be made to work with Apple Lossless (ALAC) files? http://www.foobar2000.org/components/view/foo_input_alac

I know the HDCD data is preserved fine (why wouldn't it be?) because this plugin's indicator will display properly if I convert ALAC files (sourced from HDCD) into WAV.

HDCD Decoder

Reply #269
Support for any specific lossless format is up to the developer of that format's input component.

HDCD Decoder

Reply #270
Tried using the HDCD plugin to convert an HDCD album in foobar2000 v1.1.10, and it didn't work. Files were, originally, ALAC files that I purposefully converted over to WAV before attempting the HDCD conversion. Even though the plugin could correctly detect the HDCD data, it refused to properly convert to HDCD. The same WAV files, though, converted over fine to HDCD with the HDCD.exe encoder.

HDCD Decoder

Reply #271
This is a decoder. You can use it to convert HDCD encoded audio to 24bit PCM.

HDCD Decoder

Reply #272
If you are performing a conversion, you must also specify in the converter that the bit depth of the output is to be 24 bits, not automatic. The auto detection fails when filters such as this or the DTS decoder are active.

Also, if your HDCD material does not use Peak Extension or Low Level Adjustment (or whatever it's called), then with the default settings of this decoder, the output will be identical to the input. You may verify the presence of these effects by running the HDCD scanner from the Utilities section of the playlist context menu, and check for gain levels other than 0.0 dB and/or Peak Extension enabled or intermittent. Transient filter is merely an indicator of the encoder's selection of transient filter, and has no effect on decoding. In fact, there is no known decoder which makes use of that flag, since hardware solutions employ a transient filter that combines the properties of the two filters used by the encoder, or something like that.

HDCD Decoder

Reply #273
[Bug Feedback]The latest release(1.12) of foo_hdcd report false positive via %__HDCD% and $info(hdcd) when playing audio which is not encode in HDCD format, last version(1.11) don't have this problem. please aware of this issues, thanks!

HDCD Decoder

Reply #274
Good catch, sorry I didn't put the new decoder through more thorough testing. The bug is now fixed.