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: foo_input_sacd volume disparity (Read 6360 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_input_sacd volume disparity

DSD files don't play back at the expected loudness after RG scan.  Any one else experience this?

foo_input_sacd volume disparity

Reply #1
If you're using its ASIO output to play DSD directly to an external DAC, then this is probably to be expected.

If not, then it's quite possible that its tagging database doesn't handle RG tags properly. Check if the tags are actually present on the files?

foo_input_sacd volume disparity

Reply #2
I'll play around with tagging setting and see what I find, not sure otherwise how to check for something that's reported by the player but might not really be there...
What I've found so far, the RG preamp "with RG info" setting works exactly as expected. Independent from that the playback loudness still varies from title to title.

foo_input_sacd volume disparity

Reply #3
Maybe the developer applies RG gain directly, which they shouldn't be doing? Let me check the source.

E: Developer doesn't support tagging ReplayGain info properly. The input's get_info function always overwrites the ReplayGain info in the database with whatever global gain setting you have configured in preferences.

foo_input_sacd volume disparity

Reply #4
Got a reply back from the dev
Quote
For me it's something strange that input plugin should know how to handle replay gain global settings. Ok, what's the proper method to handle RG? I'd fixed that...

foo_input_sacd volume disparity

Reply #5
Input plugin should, at least, know how to load RG tags on get_info, and how to store them in the tag write/update functions, since the player relies on these tags to control its own ReplayGain processing.

foo_input_sacd volume disparity

Reply #6
A new version 0.8.1 is out, unfortunately the volume disparity remains.

foo_input_sacd volume disparity

Reply #7
I might be misunderstanding your issue, but in general to keep DSD as DSD you can't do replay gain in the player.  To do so would involve doing another sigma delta modulation to get the results back to 1 bit.  foo_input_sacd will let you convert DSD to PCM and then replay gain will be applied.  Further the DSD ASIOProxy will allow conversion back to DSD if your DAC requires it.
Personally tho in general I'm a big fan of replay gain, I still choose to keep DSD in DSD...

foo_input_sacd volume disparity

Reply #8
I might be misunderstanding your issue, but in general to keep DSD as DSD you can't do replay gain in the player.  To do so would involve doing another sigma delta modulation to get the results back to 1 bit.  foo_input_sacd will let you convert DSD to PCM and then replay gain will be applied.  Further the DSD ASIOProxy will allow conversion back to DSD if your DAC requires it.
Personally tho in general I'm a big fan of replay gain, I still choose to keep DSD in DSD...


RG is partly functional though, pre-amp setting takes effect.

foo_input_sacd volume disparity

Reply #9
Something else is going on - with foo_input_sacd set for DSD there is no replay gain at all going on - no pre-amp either.
With foo_input_dsd set for PCM you choose how much to lower the volume in the resultant PCM (DSD can represent levels above 0dBFS and PCM can't so if you don't lower the volume a little before converting to PCM you'll clip on peaks.)
After foo_input_dsd's conversion to PCM then replay gain operates normally.  I just tested all of this and in particular having different replay gain preamp settings when playing DSD as DSD had no effect what so ever.

foo_input_sacd volume disparity

Reply #10
Something else is going on - with foo_input_sacd set for DSD there is no replay gain at all going on - no pre-amp either.
With foo_input_dsd set for PCM you choose how much to lower the volume in the resultant PCM (DSD can represent levels above 0dBFS and PCM can't so if you don't lower the volume a little before converting to PCM you'll clip on peaks.)
After foo_input_dsd's conversion to PCM then replay gain operates normally.  I just tested all of this and in particular having different replay gain preamp settings when playing DSD as DSD had no effect what so ever.

I'll provide evidence for my problem as soon as I find the time. BTW if applying gain is that convoluted, how do you explain the gain setting under SACD properties?

foo_input_sacd volume disparity

Reply #11
I'll provide evidence for my problem as soon as I find the time. BTW if applying gain is that convoluted, how do you explain the gain setting under SACD properties?

I attempted to explain it - it's used to keep PCM from clipping when the DSD is converted to PCM.  All ones or all zeros in DSD is 6dB higher than full scale PCM.  SACDs should only get 3dB louder than PCM's full scale only rarely, but if the PCM output from converting from DSD were the same level as the DSD there'd be clipping.

I suspect there's simply a misunderstanding about the terms in use.  But things work the way I tried to explain.  With replay gain off playing the DSD layer of a ripped SACD (as DSD) thru my DAC is the same volume level as playing the ripped CD layer of the same disk.  However even with replay gain turned on when playing the DSD as DSD no replay gain is applied.  With replay gain on when playing the DSD as PCM replay gain is applied in the expected way, but there's the added complication of the 0-6dB adjustment in the SACD settings.  I typically use 4dB when I convert to PCM.

Re: foo_input_sacd volume disparity

Reply #12
What I see in settings for the foo_input_sacd plugin (v1.0.2) is only the option to *increase* PCM Volume levels from +0 to +6dB, because typically the DSD-->PCM conversion results in peaks *down* as much as -6dB at the default no boost (+0dB) setting.  

I have found exactly one instance where the DSD-PCM conversion seem to demand a level *decrease* -- the old stereo-only, DSD-only Michael Jackson 'Thriller' SACD from 1999.  The digital overs there seem baked in to the DSD -- even converting at +0 dB results in overloads in the PCM file. I've found no way to  enforce a negative value for the conversion, either in foobar's or the plugin's    settings.

 

Re: foo_input_sacd volume disparity

Reply #13
Some of this is a question of semantics:  0dBFS DSD on SACDs is the same level as 0dBFS PCM, BUT DSD on SACDs can go to +3.1dBFS, whereas PCM can't go over 0dBFS at all.  A naïve conversion from DSD to PCM could therefor overflow a lot on louder music.  Different DSD -> PCM converters and / or DACs handle this differently.  A proper DSD DAC will be able to reproduce those over 0dBFS peaks accurately when playing SACDs, but there has to be some compromise for PCM only DACs and that's where the lowering of the PCM output by 0 to 6dB comes in.  The problem is that some people mislabel the options which confuses matters.  In any case by spec a SACD can't have a signal higher than +3.1dBFS, and it's physically impossible for DSD to represent a signal more than +6dBFS since that would be all ones or all zeros.  So tho "Thriller" is in places over 0dBFS it can't ever be more than +6dBFS.  With wave displays here I don't see even the typical "loudness wars" compression on "Thriller".  If there are overflows converting DSD -> PCM with the settings set to reduce the PCM by 6dB then there's something wrong with the DSD -> PCM conversion you are using or something else (replaygain?) affected the resultant PCM.