INTERACT FORUM

More => Old Versions => JRiver Media Center 27 for Windows => Topic started by: Enger on April 20, 2021, 05:23:55 pm

Title: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 20, 2021, 05:23:55 pm
I am running 27.0.79 (64-bit).
I have a disc that is specifically marked as being HDCD, but Media Center does not recognize it as such.  I ran the "analyze audio" function, and it marks the songs on the CD as HDCD "0".

(I store my disks as PCM.)
I used dBpowerAmp Music Converter to process the source PCM (straight copy from the disc) using the HDCD module, and created a new set of HDCD-decoded PCM files.
Comparing the audio between the straight-off-the-cd PCM and the HDCD-decoded PCM, there is an audible difference, albeit subtle.  The HDCD-decoded files do sound better (more open).

It might be nice to, somehow, convince JRiver that it ought to activate HDCD-decoding for CDs explicitly marked as using HDCD.
If there is no reliable metadata on the actual CD to help JRiver identify HDCD, would it be possible for users to MANUALLY modify the HDCD flag in the JRiver database for songs on CDs that are physically marked as being HDCD encoded?  Would that force JRiver to activate the HDCD decoder routines when playing the given CD?

Please see the attached screen-caps and photograph.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 20, 2021, 06:45:18 pm
I believe MC uses the same software as Foobar, the source of which is still a little mysterious.  MC does have a routine that checks to see if any of the extensions are actually used and reports it as not HDCD if none are present. I believe Foobar reports the extension values it sees. Have you looked at those?
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Matt on April 20, 2021, 06:49:32 pm
If you mail me a file you think should be HDCD that we're not detecting I'll take a look.  I'm matt at jriver. Thanks.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: jkauff on April 21, 2021, 05:52:53 am
A few days ago on the Steve Hoffman message board there was a discussion about discs that are labeled HDCD, but were not mastered using HDCD. A couple of Joni Mitchell discs were mentioned as having this problem.

Do you have a physical player that supports HDCD, or have access to one, that you could use to test the discs you're having trouble with?
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 21, 2021, 09:03:31 am
HDCD detection and decoding is an inexact science since the actual specs have never been publicly released.

HDCDs implemented several different features, not all of which were used on each release. The peak extend and gain adjustment features are implemented in software decoders, whereas transient filters are typically not implemented.  In the Hydrogen Audio list of HDCDs, many of the Steve Hoffman Audio Fidelity HDCDs are listed as using transient filters but not peak extend and gain adjustment. So, they are HDCDs, but the software decoders will do nothing to them, since all they implement is the transient filters.

For example, Faces - A Nod Is As Good As A Wink... (AFZ026) and Deep Purple - Who Do We Think We Are (AFZ027), the 2 numbered releases just before Montrose and also released in2005 only have transient filters implemented according to the ffmpeg analysis.

That does not explain why you think you hear a difference with the foobar decoder, but it may explain why MC does not detect any actual HDCD coding beyond the code that identifies it as HDCD.

https://wiki.hydrogenaud.io/index.php?title=List_of_HDCD-encoded_Compact_Discs

Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 21, 2021, 09:12:19 am
Here is the link to the data that foobar is reporting for the HDCD. It will tell you the peak extend and gain adjustment and transient data that foobar is seeing.

https://hydrogenaud.io/index.php?topic=79427.msg716302#msg716302

EDIT: It looks like there is now a HDCD Scan option in foobar that also provides that information. I am not a regular foobar user.

Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 12:56:26 am
Thank you for the many replies.

I do have an OLD cd/dvd player that recognizes HDCD.  It is an Oppo BDP-83.  (I am hiding it from the Smithsonian...)
I put the disc in there and IT RECOGNIZED IT AS HDCD WHEN I LOADED IT (before even playing the 1st song.  (see picture; pls use SCROLL-BAR to view right-side of wide photo)
I also played a tune and brought up the info display (limited as it is) on the TV screen.  It too shows HDCD in the lower-right corner.  (see pic)

Wondering if this is some sort of wackiness in the Oppo, I grabbed a random CD from the stack and plugged it in. 
It reports CD when the disk loads.  And the TV screen shows CDDA when a song is playing.

So, the Oppo DOES somehow recognize the disc as being HDCD.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 01:12:15 am
I had originally ripped the disk using EAC or dbPowerAmp CDRipper.
I wondered if things would work out better if I let Media Center itself do the ripping.
So, I turned on Media Center and inserted a disk.  It dutifully asked me if I wanted to rip it.  I said yes.

It did  NOT  recognize the disk as being HDCD.  It did analyze the audio as it ingested, and it set the HDCD flag to  "0"  on each file.

A couple of photos are attached, but they don't seem to show too much.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 01:31:20 am
If you mail me a file you think should be HDCD that we're not detecting I'll take a look.  I'm matt at jriver. Thanks.
MATT:  I am new to this Forum.  I am not sure HOW I can send a large file to you.  (30MBytes).
It appears that I am prohibited from sending you private messages (e.g. containing a link to download a file I put up on Google Drive, etc).
I will gladly send you a sample (probably the 1st tune from the CD).  Just tell me how.
Thank you,
Bob Enger
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 05:12:59 am
Foobar2000  DOES  recognize HDCD songs.  I installed the latest status-line definition, so that it displays HDCD info.  Please see the screen-cap attached.

ALSO, it has been so long since I created the decoded-HDCD files that I forgot how I did it.
I did NOT use Foobar2000.  I used dBPoweramp's Music Decoder with the HDCD module activated.

Foobar2000 does detect and play HDCD encoded CDs.  But (imho) their decoding doesn't sound as nice as playing the pre-decoded WAV files produced by Music Decoder.
(These are not double-blind comparison experiments, etc.  So bias is very possible.)
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Matt on April 23, 2021, 05:14:52 am
MATT:  I am new to this Forum.  I am not sure HOW I can send a large file to you.  (30MBytes).
It appears that I am prohibited from sending you private messages (e.g. containing a link to download a file I put up on Google Drive, etc).
I will gladly send you a sample (probably the 1st tune from the CD).  Just tell me how.
Thank you,
Bob Enger

Send me a link to a sharing site.  My email is matt at jriver dot com.  Thanks.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 23, 2021, 08:07:47 am
Did you try to get foobar to report the HDCD status to see what it actual found - see my other post?  It is possible that the only encoding is the transient filter, in which case MC would report it as not being a HDCD, since the MC software does not deal with those filters.

I am not a foobar user, but here is what I found.

To change the status box,

File->Preferences->Display->Default User Interface

Here is another sample status line

https://diyah.boards.net/post/1974


and to do a scan

select some tracks and (right-click the track) Utilities -> Scan for HDCD tracks

It would be nice for MC to report these HDCD parameters also.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 01:29:29 pm
DTC:
Yes, I ran the test.  Please refresh Interact-Forum listing (or whatever).  The picture of the Foobar2000 test is directly above your note!   :) 

I am uncertain how to definitively interpret the HDCD info being provided by Foobar.  But my guess is, this is another "Transient Filters Only" mastering?  (See status line in the picture)

Another unknown:  how complete is the HDCD implementation used in dBpoweramp's Music Converter?   Did they bite the bullet and buy a full HDCD decoding implementation from Microsoft (including some sort of "Transient Filters" capability)?

If dBpoweramp's Music Converter is doing nothing but changing a 16 bit file into a 24-bit file, then any audible differences I hear must be listener-bias.

The 24-bit input files should provide no benefit, as the extra bits should just be zero filled if Music Converter is really doing nothing.  I already have MC set to output 32bit via ASIO to my ESS Saber 9018 DAC.  So the DAC should be seeing a 32bit stream, regardless of whether original input is 16 or 24 bits. 

(I do play 44.1 CDs at 176.4 using the SOX up-sampler in MC. Based on watching the peak-level indicator on MC's DSP configuration page, I noticed that SOX appears to ring slightly.  On hot source material (CDs already mastered to 0db FS) I assumed the ringing could cause the DAC to clip.  So I run MC in "flat line overflows" mode, and set MC to reduce the volume by 6dB to preserve the peaks.  Again, none of this should bear on audibility of HDCD, if the software-decoders are doing nothing but zero padding 16 bits to 24 bits.)
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 23, 2021, 02:15:56 pm
Sorry, I missed the status line at the bottom. It is as I suspected. The transient filter is the only thing implemented and none of the reverse engineered software implementations deal with those filters.

JRiver decided not to identify tracks as HDCD if they were not encoded with peak extend and/or gain adjustments. foobar identifies the HDCD marker but does not apply any HDCD extensions since there is no HDCD code that it can expand.  I believe that is why foobar identifies this CD as HDCD and MC does not.

A little history - well actually a lot of history.

Pacific Microsonics developed HDCD and implemented it in their A to D converters. They then licensed the decoder to a chip manufacturer and CD player manufacturers used that chip to decode HDCD. PM never disclosed the full details of the HDCD encoding and decoding. When HDCD was declining, Microsoft purchased the rights to HDCD and, again, never disclosed the details.  Microsoft did implement a software decoder in Windows Media Player.

One enterprising software expert reverse engineered a program, which he called hdcd.exe, and that got into the public domain. He never had the actual specs for HDCD, he just did everything he could to try to reproduce the output of the WMP decoder and the HDCD players. He basically reproduced the peak extend and gain adjustments parts of HDCD.  However, the transient filters were pretty much unknown and the were only implemented when the data was upsampled to 88 Khz by the CD players. Since he did not know what the filters really were he did not try to implement them and did not upsample to 88 KHz. The hardware CD players only output the end analog signal. They did not produce a digital signal that could be analyzed. That was common in the days before computer audio, since the only DACs were in CD and other players.  This original reverse engineered version is commonly referred to as the doom9 version, since that website is where the original version was discussed and released.

Early adopters like dBpoweramp used the hdcd.exe program just as it was released. But the code was never made public as far as I know. hdcd.exe only ran on Windows systems, so it was not implemented on Apple systems, except perhaps using Windows emulators.

A latter reverse engineering of the Microsoft decoder lead to a second reverse engineered software decoder and that was implemented in foobar.  Since the code for that program was available, it could be used across platforms, including on Apple. Once again, it only did peak extend and gain adjust, based on the research done by the hdcd.exe author.

JRiver implemented the foobar version of the code, since they wanted it to be cross platform. However, they added the idea that if no peak extend or gain adjustment was encoded in the track, then they would not identify it as HDCD, since the hdcd decoder did nothing to the bits.

There are many CDs labeled as HDCD which have no HDCD content. That is because lots of studios used PM A to D converts, which were state of the art. However, the engineers often did not really understand HDCD so they just ignored those options in the A to D. But the A to D still wrote the code to the track that identified it as a HDCD track.  Sometimes these producers identified the disk as HDCD and sometimes they did not. But, since the marker was present in the files, the blue light lite on CD player, even though nothing was really being enhanced.

In the case of your CD and others from the same producers, it appears that they did not apply any peak extend or gain adjust but did implement the transient filters. Hence, HDCD players, dBpoweramp and foobar identify them as HDCDs, even though only the transient filters are implemented on the original CD.

In summary, there are two software decoders generally available and both are reverse engineered without the advantage of having the full specs or the original code.  JRiver used one of those and further added the feature to not identify the tracks as HDCD if no HDCD changes were actually made.

Hope that helps, a little.

EDIT: I forgot to mention the ffmpeg HDCD decoder. From what I understand,  it is based on the foobar decoder.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 04:42:09 pm
Good info.  Thank you.  I also read through a ton of material from Charlie Hansen.
 
It would be nice to gain full access to these older CD masterings.  Although with modern DACs it would be difficult to accomplish.
It seems properly decoding the Transient Filter component of HDCD requires dynamic changes to the DAC PCM reconstruction filter.

"Maybe" this could be simulated by implementing the two HDCD Transient Filters in software, applying the correct one at the given instant, and then generating a DSD128 stream to send to the DAC.   Sending DSD to the DAC chip bypasses the normal PCM reconstruction filter.  (Even my old Saber 9018 chip handles DSD128.)

Purchasing the design specifics for the Transient Filters remains a financial obstacle (unless MS decides to be charitable).
Another obstacle may be computational.  If these filters have many many taps, real-time computation of the filter output might be taxing (even if threaded across multiple cores); imagine if this computation had to be implemented in the GPU.

Some old masterings are desirable because the mastering engineers (and label executives) were not yet volume-crazed.  Often modern reissues, which should sound better (due to advances in ADC technology) in fact sound worse (due to added compression, degeneration of source materials, use of non-original source media, and so on).   As esoteric as these HDCD discs seem, in some instances their audio fidelity might trump what is available in the reissues.  Maybe JRiver can be the first with a fully complete HDCD playback solution?
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 23, 2021, 05:29:21 pm
Charlie was good at sharing his opinions and helped educate a lot of people. He was one of the more vocal people about HDCD.

The good news is that the people who produced HDCDs were usually very interested in the mastering and production process, so produced some outstanding CDs, even if the extensions are not applied.  And the PM A to Ds were outstanding products, especially for their time.  The original PMD100 still sells for $5K to $8K, and the PMD200 goes for over $10,000. Pretty remarkable for such old units. But, very few people who have them want to sell them.

Microsoft has never had much interest in HDCD, so I really doubt much new is going to happen on the decoding front. There has always been a hope they would release the full specs, but it does not seem to happen.

Reference Recordings is still producing HDCDs, but they may be the last one.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: Enger on April 23, 2021, 09:43:57 pm
DTC:  Thank you again for the info!
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: jkauff on April 24, 2021, 05:27:47 am
Microsoft has moved a lot of proprietary code to open source in the last few years. They might OK releasing the HDCD code, but it would probably be difficult to find the right person to talk to about it.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: BigSpider on April 26, 2021, 03:29:12 pm
You can also find HDCD tracks showing up in the tracks of non HDCD marked CD's - I guess when they are mastered they just add tracks without regard to their HDCD status. A surprise bonus for the music lovers amongst us.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 26, 2021, 03:46:53 pm
You can also find HDCD tracks showing up in the tracks of non HDCD marked CD's - I guess when they are mastered they just add tracks without regard to their HDCD status. A surprise bonus for the music lovers amongst us.

Often those tracks were produced with a PM A/D so they have a HDCD marker, but none of the HDCD features were actually used. But, yes, sometimes there is a surprise.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: BigSpider on April 26, 2021, 03:55:24 pm
Audio output tells me that they are indeed hdcd and plays them as such. I must say that it is an infrequent bonus, but I'm happy with even the smallest of freebies. :)
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: BigSpider on April 26, 2021, 04:11:30 pm
Not an expert in this area but I was of the understanding that dbpoweramp and the like would convert to a pcm file so that it incorporated the added features of the original HDCD file. So if the files were HDCD when they were ripped into pcm files they would just play as files such as 24bit with the added sound bonus.  If JRiver does find the augmented features it recognises an HDCD file by it just plays them as is.
Title: Re: JRiver does not identify HDCD encoded disc as being HDCD-encoded
Post by: dtc on April 26, 2021, 05:16:26 pm
Yes, dBpoweramp recognizes the HDCD codes and implements them by expanding to a 44/24 format. The actual extensions only use 20 bits, so the last 4 bits are just zeros.  MC does not have to do anything with those files, since they are already expanded.  If MC detects a none expanded file, it does the expansion on playback.

The issue with so-called "fake" HDCDs are that there is a marker that identifies them as HDCD, but none of the actually HDCD features are implemented in the files. So, the light comes on on the CD player and dBpoweramp and foobar identify them as HDCD, but none of the extensions are actually there. That is what happened in the Montrose album above.  The marker is there, but the enhancements that the software decoders should read and implement are not there. 

If you look through the list on Hydrogenaudio, it has CDs that have HDCD content, but that are not labelled as such. There are quite a few.

https://wiki.hydrogenaud.io/index.php?title=List_of_HDCD-encoded_Compact_Discs