INTERACT FORUM

More => Old Versions => JRiver Media Center 21 for Windows => Topic started by: bobkatz on September 12, 2015, 09:57:05 am

Title: A different kind of dithering?
Post by: bobkatz on September 12, 2015, 09:57:05 am
Since we're also talking about audiophile quality improvements, I'd like to see proper TPDF dithering, rather than the less-adequate dithering  which is currently implemented. And I'm talking about the dithering to 24 bit.

Here is the loss I notice:

a) MC playing 24 bit audio when the volume control is off of the zero point, feeding a 24-bit DAC directly, versus

b) MC with a 24-bit dithering plugin. Sounds better. Unfortunately, multichannel plugins don't seem to work right, so I cannot use this solution in 5.1

or

c) MC running 64-bit float, Acourate ASIO into Acourate Convolver. Acourate Convolver is properly dithered and has more apparent depth and resolution than MC doing its own dither.

In both cases, to my ears b and c sound better (warmer and deeper) than a. I can only conclude that the dither in MC is not an accurately-implemented TPDF.

Please don't ask me to pass a blind test on this. This is so subtle that it's very difficult to pass blind, guys.

On the Mac side, when I turn off dither in the advanced preferences, and implement a plugin for dither, I get the same sonic improvements as on the PC.
Title: Re: A different kind of dithering?
Post by: bobkatz on September 12, 2015, 08:10:46 pm
I am aware of the discussion and participated in it. I am a recognized authority on this subject. In a portion of the discussion I actually helped Matt get out of a bind by analyzing JRiver's 24 bit dither and concluding (at that time) that it was certainly satisfactory at 24 bits despite there being a bit of visible noise modulation on an FFT analyzer.

Subsequently (not reported in this forum) I did further listening and investigation and came to the conclusion that JRiver's 24 bit dither is audibly "good but not perfect".

The reasons (I repeat) that I did not decide to discuss that at that time were that yes, the topic had gotten ad nauseum and a rather rude individual who wanted to see a more perfect 16-bit reduction was just getting on our nerves. In addition, a good dithering plugin corrects the replaces and corrects the slightly weaker resolution of JRiver. So I let it go.

But now that JRiver 21 is coming in and JRiver has reached a high level of maturity, I decided to readdress the topic. Audiophile-quality processing is the goal of JRiver and if it does not perform audibly as well as a textbook-implemented random TPDF then it should do so. TPDF with a proper random number generator is about 20 lines of C++ .
Title: Re: A different kind of dithering?
Post by: dallasjustice on September 13, 2015, 03:27:20 am
I really can't say whether one dither is better than another. I can say that I've compared Acourate Convolver's TPDF dither with it's shaped either. I honestly can't hear any difference.

Bob, what perceptual cues do you hear or not hear with JRiver's dither which you can/can't hear with other dither?  I know your ear is trained for this and mine is not, so I defer to you.

Michael.
Title: Re: A different kind of dithering?
Post by: bobkatz on September 13, 2015, 12:48:04 pm
I really can't say whether one dither is better than another. I can say that I've compared Acourate Convolver's TPDF dither with it's shaped either. I honestly can't hear any difference.

Bob, what perceptual cues do you hear or not hear with JRiver's dither which you can/can't hear with other dither?  I know your ear is trained for this and mine is not, so I defer to you.

Michael.

Dear Michael: It sounds like a very subtle loss of depth (ambience) to me. This is not earth-shattering, but there is only one correct TPDF. I can't hear a difference between Acourate Convolver's shapes at 24 bit either! All the shapes start as flat TPDF, which is the important point. The shaping is really only helpful at lesser bit-depths.

Also keep in mind that other well-implemented dithers as plugins when inserted into JRiver sound better to me than JRiver's current dither.

This is an "audiophile level difference" folks, it's not earth-shattering, I could not pass a blind test on this, but I believe it is audible. It is certainly measurable as a bit of noise modulation in an FFT, which is a symptom of inadequately-random noise generation.
Title: Re: A different kind of dithering?
Post by: DarkPenguin on September 13, 2015, 01:23:13 pm
I could not pass a blind test on this, but I believe it is audible.
I don't get what you mean by this.
Title: Re: A different kind of dithering?
Post by: JimH on September 13, 2015, 01:24:25 pm
I don't get what you mean by this.
Don't fall into this trap, Bob.  ;)
Title: Re: A different kind of dithering?
Post by: AndrewFG on September 13, 2015, 01:27:08 pm
Don't fall into this trap, Bob.  ;)

Jim, you may want to change the subject of this thread from "Better Dithering" to "Alternative Dithering" ..
Title: Re: A different kind of dithering?
Post by: JimH on September 13, 2015, 01:30:01 pm
Bob thinks it's better.  I'll change it though.
Title: Re: A different kind of dithering?
Post by: DarkPenguin on September 13, 2015, 01:59:31 pm
Don't fall into this trap, Bob.  ;)

It is a legitimate question!  I don't know if he means it isn't always audible.  It isn't consistently better.  Or what exactly.

I should think you could ferret this out with a long double blind and then analyzing whether or not a difference was heard when there was in fact a difference to be heard.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 13, 2015, 03:43:51 pm
We'll look into this. Likeliest choice is that we'll add a option to change the behavior for the time being, instead of changing the default.
Title: Re: A different kind of dithering?
Post by: dallasjustice on September 13, 2015, 05:11:38 pm
Bob's account seems plausible to me.

I used to own a totaldac. I had a friend who said he could hear the difference between the volume control in jriver and the totaldac's volume control. I put him to the test and he could consistently pick out the Totaldac volume control in a blind test. He described the difference in terms of spatial cues; eg. Width and depth. When I did the test I disabled the jriver volume and used the totalDAC internal dithered volume control. He preferred the totaldac every time. Personally, I couldn't (or didn't want to) hear the difference. :-)
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 03:57:23 am
The next build will offer full-strength TPDF dithering (ie 2LSB as people like to call it), but not enabled by default. There is a new option in Audio -> Advanced -> Dither Mode

If anyone is interested in seeing a difference, even if you cannot hear it, I did test with the Bit-depth simulator plugin in MCs PEQ set to 16-bit, and the Voxengo SPAN visualizer VST (dial the range all the way down to -140dB). You can see low distortions with our original dithering, and the perfectly even, but stronger, noise with TPDF.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 14, 2015, 06:14:48 am
Hi, I'm using a MF V-Link 192 with it's supplied Thesycon ASIO driver.
The driver appears to only accept data at 32bit but I'm not 100% sure of this.
The MF-V-Link only outputs data at 24 bit to a DAC so I assume it may dither down internally from 32 bit to 24 bit rather than truncating.
I use JRiver's Internal volume. Should I enable or disable JRiver's dither option?
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 06:36:47 am
You should always dither.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 14, 2015, 06:47:45 am
Hi, thanks for your quick reply. I don't fully understand why I should always dither but you're the expert not me so dither it is :)

Another question if you don't mind (or somebody else). If I use ASIO then Audio Path reports 32 bit output. WASAPI on the other hand with Automatic Bit Depth set it in the WASAPI options then Audio Path reports 24 bit (padded) output. I appreciate there may be no audible difference especially in real life use but which one is technically superior?
Title: Re: A different kind of dithering?
Post by: mwillems on September 14, 2015, 08:40:03 am
The next build will offer full-strength TPDF dithering (ie 2LSB as people like to call it), but not enabled by default. There is a new option in Audio -> Advanced -> Dither Mode

If anyone is interested in seeing a difference, even if you cannot hear it, I did test with the Bit-depth simulator plugin in MCs PEQ set to 16-bit, and the Voxengo SPAN visualizer VST (dial the range all the way down to -140dB). You can see low distortions with our original dithering, and the perfectly even, but stronger, noise with TPDF.

I'm glad to hear this.  It will make some folks very happy, and hopefully end a long-standing source of forum angst.  Let me know if you want measurements or testing (although I suspect Bob will probably have that covered in spades).
Title: Re: A different kind of dithering?
Post by: Hilton on September 14, 2015, 08:46:42 am
Wow... thanks Bobkatz and Thanks Hendrik for listening. ;) LOL

I'd never of guessed this would make it into a build.
Title: Re: A different kind of dithering?
Post by: bobkatz on September 14, 2015, 10:29:06 am
The next build will offer full-strength TPDF dithering (ie 2LSB as people like to call it), but not enabled by default. There is a new option in Audio -> Advanced -> Dither Mode

If anyone is interested in seeing a difference, even if you cannot hear it, I did test with the Bit-depth simulator plugin in MCs PEQ set to 16-bit, and the Voxengo SPAN visualizer VST (dial the range all the way down to -140dB). You can see low distortions with our original dithering, and the perfectly even, but stronger, noise with TPDF.

Dear Hendrik: To me that's fantastic news. As soon as that build is announced I'd like to test it. As far as blind test goes, what I meant is that I notice the results sighted.

Basically, I claim to hear a difference that's very subtle and difficult to prove in a well-organized blind test. It should be acknowledged that blind tests are very fatiguing and therefore subtle differences which are claimed to be audible sighted may not be easily provable. And some assertions have to be taken as a positive indication, as you have. It's how audio advanced from tubes to transistors and back to tubes, isn't it  :-).

It is very difficult to organize a formal blind test on such a subtle difference. It could take weeks to months of painstaking trials to prove this assertion. In fact, it takes a long long long time to prove any assertion of subtle difference blind. Would the folks in JRiver undertake to improve their video resolution if they learned the vast majority of the public can't tell the difference between 2K and 4K video?

As my colleague Dave Collins says, "If it's done blind, it's amazing you can tell what piece of music is playing". Well, it's not that bad, but anyone who has tried to organize a serious blind test knows what I'm talking about. And there is no such thing as a "casual blind test", no sir. Don't fall into that trap. Results are likely to be random with an uncontrolled, "casual" blind test. I'm conducting a formal blind test right now that's making me pull my hair out!
Title: Re: A different kind of dithering?
Post by: CountryBumkin on September 14, 2015, 10:52:41 am
I'm glad to hear this.  It will make some folks very happy, and hopefully end a long-standing source of forum angst.

+1
Title: Re: A different kind of dithering?
Post by: kstuart on September 14, 2015, 01:13:26 pm
If I am understanding this issue correctly, if one has Volume in MC21 set to "Disabled Volume", then the dither is never used.

Is that correct ?
Title: Re: A different kind of dithering?
Post by: mojave on September 14, 2015, 01:27:55 pm
If I am understanding this issue correctly, if one has Volume in MC21 set to "Disabled Volume", then the dither is never used.

Is that correct ?
DSP is all done at 64-bits in JRiver. Anytime there has been any DSP done it is dithered when converted back to either 32 or 24 bits for the DAC. This includes Parametric Equalizer, Volume Leveling, Adaptive Volume, etc.
Title: Re: A different kind of dithering?
Post by: v_erich on September 14, 2015, 02:13:55 pm
+1

Thanks
Title: Re: A different kind of dithering?
Post by: kstuart on September 14, 2015, 02:52:24 pm
DSP is all done at 64-bits in JRiver. Anytime there has been any DSP done it is dithered when converted back to either 32 or 24 bits for the DAC. This includes Parametric Equalizer, Volume Leveling, Adaptive Volume, etc.
If Volume is set to "disabled volume" and the Audio Path is "blue", then no dithering at all is used.

Is that correct ?
Title: Re: A different kind of dithering?
Post by: mwillems on September 14, 2015, 03:05:09 pm
If Volume is set to "disabled volume" and the Audio Path is "blue", then no dithering at all is used.

Is that correct ?


No. Some volume changes (such as those done by volume leveling or adaptive volume) will not turn off the "blue light", and you'd be getting dither under those circumstances.  The only way to be certain no dithering of any kind is happening is to disable volume, use a direct playback method that bypasses the windows mixer, and make sure that all JRiver DSP blocks are disabled.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 03:09:20 pm
You'll probably also want to disable dithering if you're trying to go for that, otherwise there are no guarantees.
But who plays without any kind of DSP anyway, and if its only loudness and volume leveling.
Title: Re: A different kind of dithering?
Post by: mojave on September 14, 2015, 03:51:36 pm
I used Tools > Advanced Tools > Audio Calibration > Tones to output a 1000 Hz sine wave. I played at -14 dB. The noise of the sine wave didn't change with any volume change. Only the actual sine wave peak level changed.

I viewed it using Voxengo Span in JRiver's DSP Studio. Here are the results with 64 bit output, 16 bit output with no dither, 16 bit output with JRiver dither and 16 bit output with TPDF dither.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 03:56:13 pm
I don't think your No Dither image is actually correct. Or I broke disabling dithering. One of those!

Edit:
Disable still seems to work fine here.


mojave fixed it. :)
Title: Re: A different kind of dithering?
Post by: mojave on September 14, 2015, 03:59:51 pm
I don't think your No Dither image is actually correct. Or I broke disabling dithering. One of those!
I tried to fix a text formatting issue and decided to upload the picture again for no dithering. I then uploaded the wrong picture and realized it after I had posted. It is fixed now.
Title: Re: A different kind of dithering?
Post by: Awesome Donkey on September 14, 2015, 04:05:25 pm
The next build will offer full-strength TPDF dithering (ie 2LSB as people like to call it), but not enabled by default. There is a new option in Audio -> Advanced -> Dither Mode

Huh, how about that? Hopefully that appeases everyone...
Title: Re: A different kind of dithering?
Post by: mojave on September 14, 2015, 04:07:31 pm
Can 32 bit be added to the bitdepth simulator? I have a 32 bit DAC. Maybe it ends up below the noise floor that can be shown in SPAN.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 04:13:00 pm
Can 32 bit be added to the bitdepth simulator? I have a 32 bit DAC. Maybe it ends up below the noise floor that can be shown in SPAN.

Sure, why not. I also extended it to 2-bit, which short of adding a lot of audible noise, actually gives quite good output still (with TPDF)
You can clearly hear the difference between the old mode and TPDF in 2-bit. TPDF is much better at 2-bit. Not very representative, but still a neat effect.

For 32-bit, SPAN goes to -180 dB, which shows a bit of noisefloor then. But it appears to be at its limit of precision here.
Title: Re: A different kind of dithering?
Post by: bobkatz on September 14, 2015, 04:19:24 pm
Can 32 bit be added to the bitdepth simulator? I have a 32 bit DAC. Maybe it ends up below the noise floor that can be shown in SPAN.

Can you actually send 32-bit fixed point information to the DAC through USB?
Title: Re: A different kind of dithering?
Post by: mojave on September 14, 2015, 04:42:13 pm
Can you actually send 32-bit fixed point information to the DAC through USB?
ASIO output is fixed point. Even with 24-bit DACs, most of them request 32-bit data which is why JRiver has the option in Audio Setup > Device settings > Device uses only most significant 24-bits.

I use the MOTU 1248 (http://yabb.jriver.com/interact/index.php?topic=96435.0) which has ESS Sabre32 32-bit DAC chips.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 14, 2015, 04:43:42 pm
Can you actually send 32-bit fixed point information to the DAC through USB?

USB Audio 2.0 class devices can receive 32-bit over USB, yes.
Title: Re: A different kind of dithering?
Post by: kstuart on September 14, 2015, 07:07:18 pm
You'll probably also want to disable dithering if you're trying to go for that, otherwise there are no guarantees.
But who plays without any kind of DSP anyway, and if its only loudness and volume leveling.

<Raises Hand>

When I am doing any sort of listening that qualifies as "audiophile" then I am listening to an album, where the mixing engineer has already done the volume leveling (and in fact, changing volume levels of album tracks relative to each other, is actually changing the original "mix" of the album).

Conversely, when I am playing some sort of random party playlist, no one is listening close enough to possibly have the difference between dithering methods matter.

So, I assume that:

* "Disable Volume"  and
* Blue in Audio Path

means that no dither would be used ?   ( Still have not received a yes/no answer )

Quote
Some volume changes (such as those done by volume leveling or adaptive volume) will not turn off the "blue light"

But I assume that "Disable volume" disables both volume leveing and adaptive volume...
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 14, 2015, 07:16:48 pm
Hmmm ... anyone?
Title: Re: A different kind of dithering?
Post by: blgentry on September 14, 2015, 07:35:46 pm
But I assume that "Disable volume" disables both volume leveing and adaptive volume...

It does not.  Disable Volume just turns the volume slider to 100% and doesn't let you adjust it.  Volume leveling and Adaptive Volume are still active with Disable Volume set.  How this affects dither, I have no idea.  :)

Brian.
Title: Re: A different kind of dithering?
Post by: mwillems on September 14, 2015, 07:45:19 pm
Quote
So, I assume that:

* "Disable Volume"  and
* Blue in Audio Path

means that no dither would be used ?   ( Still have not received a yes/no answer )

But I assume that "Disable volume" disables both volume leveing and adaptive volume...

Why would you assume that when you can test in a matter of seconds (like I did before answering you above) and find out whether your assumption is merited? Hint: it's not.

Disable volume, enable volume leveling, and then look at the audio path.  You'll see that the volume leveling adjustment is still happening, and the path icon will still glow blue.  

When I am doing any sort of listening that qualifies as "audiophile" then I am listening to an album, where the mixing engineer has already done the volume leveling (and in fact, changing volume levels of album tracks relative to each other, is actually changing the original "mix" of the album).

Volume leveling doesn't affect intertrack dynamics when used to play an album, it only affects the global level of the album, which the engineer has not done in any meaningful way unless you have calibrated your system to play back sound at exactly the same volume as the engineer's monitoring rig. Absolute volume level for the entire album is arbitrary unless you know the level the mixing engineer was listening at; relative intertrack levels are important, but volume leveling does not affect them when all tracks are part of the same album. 
Title: Re: A different kind of dithering?
Post by: mwillems on September 14, 2015, 08:38:54 pm
Many DACs ask for a 32-bit input in ASIO mode and then discard the lower 8 bits (dithering down to 24).  If your DAC doesn't accept 32 bit output in WASAPI (most don't), then the two modes should be the same (although depending on your settings the dither may get done in a different place).
Title: Re: A different kind of dithering?
Post by: fitbrit on September 14, 2015, 09:14:49 pm
So now we have people dithering over dithering? :)
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 14, 2015, 09:24:27 pm
My DAC does not ask for a 32 bit input. My USB to SPDIF converter does but at the same time it only outputs 24 bit to the DAC.
The way I see it if I output from JRiver with dithering on at 32 bit the USB to SPDIF driver is also going to dither down to 24 bit upon output, sound reasonable?
But perhaps if I output at 24 bit from JRiver in a 32 bit package then the USB to SPDIF converter will simply discard the 8 bit zeros and output at 24 bit untouched, or perhaps not.
Once again I don't expect this to be audible or to an extent other than subtle.
But I would like to know what is the technically superior option as it should at least help me understand this stuff better.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 14, 2015, 09:30:23 pm
Volume leveling and Adaptive Volume are still active with Disable Volume set.

Only if they are actually switched on I presume?
Title: Re: A different kind of dithering?
Post by: glynor on September 15, 2015, 12:25:15 am
Yes.  Of course.
Title: Re: A different kind of dithering?
Post by: kstuart on September 15, 2015, 01:24:15 am
Okay, for "audiophile" album listening, I have "Disable Volume" and nothing checked in the DSP, except Output Format (which is "no change" except for DSD which already has noise shaping).

Quote
Volume leveling doesn't affect intertrack dynamics when used to play an album, it only affects the global level of the album,...

But of course, when I am listening to that album, I manually adjust the volume to be .... drum roll.... the volume at which I want to listen.

So, no need for volume software.   When using MC21 for random/party listening, then there is no "audiophile" aspect, and no one is paying attention closely enough for the difference between two dither formats to matter.

Thus, I think that you have to be in a particular situation to be using DSP while you are doing audiophile listening.  I'll take your word for it that you need it.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 15, 2015, 03:41:49 am
Dithering is never not performed as long as its enabled. But this is not bad. Even if you're playing 100% bitexact, then the signal ought to have baked-in dithering, or you run into the same old problems. If it does have baked in dithering, then re-dithering will just "overwrite" the original dithering. Dithering twice does not increase the amount of noise, it just overwrites the original noise.

If you want to be able to output absolutely bitexact at 100% volume, you should use the old "JRiver Bit-exact Dithering" option, which is tuned in such a way that even if its applied, it will not change a signal if its output without *any* changes (same input/output bitdepth, no volume changes or any other DSPs) - hence the Bit-exact in the name.
TPDF is a stronger dithering, and does not have this characteristic.

Dynamically turning off dithering when MC thinks the signal is untouched is rather risky, as the number of conditions for that are way too long and complex to get them 100% right.

Its also important to remember that at 24-bit output, the dithering noise is at a level somewhere south of -160dB
Title: Re: A different kind of dithering?
Post by: jjazdk on September 15, 2015, 04:19:42 am
Thus, I think that you have to be in a particular situation to be using DSP while you are doing audiophile listening.

That is one strange assumption, though it might apply in your special case.

Audiophile listening or not, in my setup DSP is always needed, due to my active filters and EQ.
Title: Re: A different kind of dithering?
Post by: v_erich on September 15, 2015, 04:20:41 am
Hi,
I have a small question:

When I use JRiver to convert music (e.g. convolving offline), is dithering used for the new stored e.g. WAV file?
You have to convert the 64 bit float from the internal computing to what is configured for converting, so dither should be applied there i think.

BR
Erich
Title: Re: A different kind of dithering?
Post by: Hendrik on September 15, 2015, 05:05:14 am
When I use JRiver to convert music (e.g. convolving offline), is dithering used for the new stored e.g. WAV file?
You have to convert the 64 bit float from the internal computing to what is configured for converting, so dither should be applied there i think.

Yes, dithering is used there as well.
We only have one function that converts the 64-bit internal audio back to the output formats, and its used everywhere a conversion is needed - so they all automatically inherit the dithering.
Title: Re: A different kind of dithering?
Post by: bobkatz on September 15, 2015, 05:42:03 am
We can't beat the laws of physics. Dither is, fundamentally noise and if you first dither a long-wordlength source to a given fixed-point result and then for some accidental reason you dither it again without changing the gain, then the noise floor will increase by 3 dB. At least with accurate TPDF randomization. If the gain has been changed before adding the new dither, then the noise floor increases by an RMS sum of the amplitude of the previous dither modified by the gain change plus the new dither.

As a mastering engineer I do a lot of manipulation (hopefully for the betterment of the sound). I've done considerable listening to cumulative 24-bit dither and it takes a few generations before any audible degradation may be noticed. However, cumulative 16-bit dither is usually frowned upon as it does degrade the depth and dimension enough to be audible (to a keen ear). It's quite benign to add 24 bit dither to previous 16-bit-dithered material and redithering is the correct way to listen to CDs with a digital volume control. Some systems automatically defeat the dither when the source is played back at exactly unity gain with no processing, but I wouldn't get hung up over that feature since properly-implemented 24 bit TPDF dither is really really really benign!

Let's refine this term "overwrite" that you used: The "cancel out" terminology some people refer to comes from this situation:  Supposing you start with a dithered 24 bit signal. You change the gain or equalize or whatever. This produces a 64-bit float output so you must dither to 24 bits again on the way to a 24-bit DAC. Your new dither is necessary and the old, previous dither becomes "irrelevant", but not, precisely "cancelled out" or "overwritten". That's a misleading term. The noise of the original dither still exists in the total result, but it no longer has any distortion-reducing effect after the new gain calculation took place.


Hope this helps,


Bob


Dithering is never not performed as long as its enabled. But this is not bad. Even if you're playing 100% bitexact, then the signal ought to have baked-in dithering, or you run into the same old problems. If it does have baked in dithering, then re-dithering will just "overwrite" the original dithering. Dithering twice does not increase the amount of noise, it just overwrites the original noise.

If you want to be able to output absolutely bitexact at 100% volume, you should use the old "JRiver Bit-exact Dithering" option, which is tuned in such a way that even if its applied, it will not change a signal if its output without *any* changes (same input/output bitdepth, no volume changes or any other DSPs) - hence the Bit-exact in the name.
TPDF is a stronger dithering, and does not have this characteristic.

Dynamically turning off dithering when MC thinks the signal is untouched is rather risky, as the number of conditions for that are way too long and complex to get them 100% right.

Its also important to remember that at 24-bit output, the dithering noise is at a level somewhere south of -160dB
Title: Re: A different kind of dithering?
Post by: Arindelle on September 15, 2015, 06:15:40 am
have you been following this post? http://yabb.jriver.com/interact/index.php?topic=100095.0 (http://yabb.jriver.com/interact/index.php?topic=100095.0)
Title: Re: A different kind of dithering?
Post by: AndyU on September 15, 2015, 06:49:30 am
You'll probably also want to disable dithering if you're trying to go for that, otherwise there are no guarantees.
But who plays without any kind of DSP anyway, and if its only loudness and volume leveling.

I play without any kind of DSP! I predominantly listen to whole works of classical music for which volume levelling makes little sense - indeed, it's not applied to albums in any case. I have occasionally thought about using loudness, but I might be more inclined to do so if I had control over the level of loudness correction applied - I would want to tell MC to apply the (say) 80db loudness contour.  As it stands, MC doesn't know the volume level of my system, so I can't see how MC can know what level of loudness correction to apply. If it's not too much trouble, perhaps you could at least show the level being applied in the Audio Path window.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 15, 2015, 07:01:36 am
if I had control over the level of loudness correction applied - I would want to tell MC to apply the (say) 80db loudness contour.

Loudness works properly if you use internal volume as well as configure a volume reference level at which the zero point for loudness sits (ie. -20dB pink noise measured at 83dB at listening position)
So all you need for it to work is a volume meter to set the reference level - and of course use internal volume.

If you use an external volume control, which MC knows nothing about, then Loudness can't work properly.

But lets try to stick to the topic at hand, the new dithering algorithm!
Title: Re: A different kind of dithering?
Post by: AndyU on September 15, 2015, 07:20:06 am
Loudness works properly if you use internal volume as well as configure a volume reference level at which the zero point for loudness sits (ie. -20dB pink noise measured at 83dB at listening position)
So all you need for it to work is a volume meter to set the reference level - and of course use internal volume.

If you use an external volume control, which MC knows nothing about, then Loudness can't work properly.

Thanks, I didn't know that. Just found details of how to do it too in the wiki here (http://wiki.jriver.com/index.php/Volume) in case anyone else is interested. Still, tbh, not much interest to me, but I might give it a play - perhaps could be useful for the odd late night quiet listen. I wonder does BobKatz expect folk to use loudness controls for stuff he has mastered?
Title: Re: A different kind of dithering?
Post by: mojave on September 15, 2015, 12:21:23 pm
If I use ASIO then Audio Path reports 32 bit output. WASAPI on the other hand with Automatic Bit Depth set it in the WASAPI options then Audio Path reports 24 bit (padded) output. I appreciate there may be no audible difference especially in real life use but which one is technically superior?
If Audio Path ever reports 32-bit output, but you have a 24-bit DAC, then you need to go to Tools > Options > Audio > Audio Device > Device Settings > Output and check "Device uses only most significant 24-bits (Lynx, etc.)." This makes sure that JRiver dithers to 24-bits instead of 32-bits since your DAC will discard 8 bits after receiving the data.

Unless this is checked for ASIO in your case, then technically WASAPI is superior. By checking it, you make them both the same.
Title: Re: A different kind of dithering?
Post by: kstuart on September 15, 2015, 12:31:35 pm
 Supposing you start with a dithered 24 bit signal. You change the gain or equalize or whatever. This produces a 64-bit float output so you must dither to 24 bits again on the way to a 24-bit DAC.

So what does MC21 do with the 64-bit float output if one has a 32-bit DAC ?
Title: Re: A different kind of dithering?
Post by: Hendrik on September 15, 2015, 12:34:08 pm
So what does MC21 do with the 64-bit float output if one has a 32-bit DAC ?

It dithers it to 32-bit of course.
Assuming the original music had built-in dithering (which it really should), and you don't apply DSP, then the added dithering from MC will be far below the volume level of the built-in dithering, and completely irrelevant.
Title: Re: A different kind of dithering?
Post by: glynor on September 15, 2015, 01:01:25 pm
But of course, when I am listening to that album, I manually adjust the volume to be .... drum roll.... the volume at which I want to listen.

To each their own, but that's weird. Why would you do manually (and sloppily) what the computer can do more precisely and automatically for you? I suppose it is good for health reasons to stand up and turn the volume knob.  But I'd rather be able to switch to a different album if I change my mind and not have to adjust the volume (or risk getting blown out of my chair).

I think it is pretty darn weird to want to listen at "high-quality" and to you (and some others) this means with all of the cool features of MC that improve sound quality turned off. I'm with Hendrik. I can't imagine wanting to use MC without at least Volume Leveling turned on.

But, like I said, to each their own.
Title: Re: A different kind of dithering?
Post by: mwillems on September 15, 2015, 01:36:28 pm
It dithers it to 32-bit of course.
Assuming the original music had built-in dithering (which it really should), and you don't apply DSP, then the added dithering from MC will be far below the volume level of the built-in dithering, and completely irrelevant.

And with a 32-bit output the noise will be near or below -192dBFS which is several orders of magnitude below the effective resolution of any known DAC (to my knowledge, the DAC holding the record for signal to noise ratio has a resolution of about 140dB).  
Title: Re: A different kind of dithering?
Post by: Arindelle on September 15, 2015, 02:17:30 pm
Quote
Why would you do manually (and sloppily) what the computer can do more precisely and automatically for you?Why would you do manually (and sloppily) what the computer can do more precisely and automatically for you?

Well if I'm listening to an album I control my volume via JRiver without leveling.  I basically don't touch my-preamps volume control any more listening this way. Doesn't bother me as I'm manually choosing another album anyway if I have to adjust the volume.

Now I may be crazy, but I find my system sounds best when my analogue pre-amp is set to around 60 (on a scale of 100 -- I find the sweet spot for my amps is between 40 and 70.  If they are "underdriven" or if the volume is pushed up to compensate for lowered volume using Leveling, I just don't think it sounds as good (example putting the amps to 80 for VL,  sound level remaining the same)... am I totally nuts? Or is there some explanation why I would find this to sound better. At 58 I'm not hearing -120db or below noise floors thats for sure!

(for info I have two active crossovers and 2 amps - cross overs are between the pre-amp stage and the amps themselves - so an active bi-amped system I guess its called - so no digital x-overs. I also have a  crappy sub-woofer for high volume use, but I keep this off most of the time so that's not in the equation; the others are quality amps, but not too powerful, )

However, if I cue up a number of albums or run a playlist I do use volume leveling and am very happy with the results, just not quite as much. I'm not paying as close attention to the music so its doesn't matter though. And since the R128 changeover, I think this has really gotten so much better.

 sorry a bit off-topic, Bob
Title: Re: A different kind of dithering?
Post by: glynor on September 15, 2015, 02:46:24 pm
Well if I'm listening to an album I control my volume via JRiver without leveling.

I'm not sure how it is different if you control the volume yourself inside MC, versus using Volume leveling. Both are doing the same exact thing.  Now, you might think that, occasionally, you do a better job. But then, if it isn't quite right from the auto-adjustment, you can just tweak it by changing the internal volume, right?

That whole comment has the smell of placebo effect. That's fine, if it makes you happy.

To be clear, because it might not have come across.  My point wasn't that it was wrong to have it turned off.  At all.

But the tone of kstuart's comments throughout this thread, responding to questions from Hendrik, read to me like something approaching incredulity that everyone wouldn't obviously see things his way and do it the same way in his situation. There were a bunch of assumptions, and then a bunch of "Are you daft? Obviously I do it this way because of X, Y, and Z. " types of responses.

I was trying, and perhaps failing, to illustrate through allegory that it is not so simple. I, for one, fall in with Hendrik and I find it hard to believe that people would ever want to do it manually.  Sure, it might not always be perfect, but then just tweak it a bit.  You have to tweak it less often.  But, kstuart feels, apparently, quite the opposite.

That's fine. No one is wrong. I was trying to point out that it is reasonable to expect the opposite, despite the conditions kstuart presented.
Title: Re: A different kind of dithering?
Post by: DarkSpace on September 15, 2015, 03:36:12 pm
Just a small question that's been confusing me for a while now:

Dithering is never not performed as long as its enabled. But this is not bad. Even if you're playing 100% bitexact, then the signal ought to have baked-in dithering, or you run into the same old problems. If it does have baked in dithering, then re-dithering will just "overwrite" the original dithering. Dithering twice does not increase the amount of noise, it just overwrites the original noise.
This sounds like the following scenario:
Input is 16-bit 48 kHz, Output is 16-bit 48 kHz, Internal Volume is at 100% and all DSP effects (even Volume Leveling) are turned off.
As I understand it, this means that the 16-bit samples are converted to 64-bit float samples. Those 64-bit float samples contain only the original 16-bit data. Next, because all DSP effects are disabled and no Volume change occurs, the 64-bit float samples are converted to 16-bit.

In this scenario, there is no rounding error from the conversion of 64-bit float to 16-bit, because the 64-bit float samples are only the untouched 16-bit samples of the input. Does the dither that's applied in this scenario change the output samples or are they identical to the input samples?
I think that there should be no change to the samples, because as I understand the concept of dither, it is meant merely to compensate for rounding errors and this scenario has no rounding errors. However, I learned that about video processing, so it may well be different for audio processing. Also, the above-quoted post seems to imply that the output samples will be different from the input samples.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 15, 2015, 03:56:33 pm
TPDF dithering is stronger than your typical video dithering, and as such it will also modify a signal if it has no rounding errors.
You can use JRiver Bit-exact dithering (ie. what we used up to now, and still as the default going forward) if you want to ensure such a chain remains bit-exact. It works more like the video dithering you had in mind.

Like I explained in an earlier post, trying to detect such a bit-exact condition and dynamically turning dithering off is rather complex and risky at best. I rather dither when not needed than accidentally disable dither when it would be needed.

Bit exactness aside, its important to remember that unless you severely reduce the volume in MC using Internal Volume (maybe to compensate for very strong amplifiers), even at 16-bit you will probably never hear the dithering noise, its still at -120dB or thereabouts. And once you do reduce the volume, you definitely want to dither anyway!
Title: Re: A different kind of dithering?
Post by: kstuart on September 15, 2015, 04:36:02 pm
But the tone of kstuart's comments throughout this thread, responding to questions from Hendrik, read to me like something approaching incredulity that everyone wouldn't obviously see things his way and do it the same way in his situation. There were a bunch of assumptions, and then a bunch of "Are you daft? Obviously I do it this way because of X, Y, and Z. " types of responses.
https://en.wikipedia.org/wiki/Attribution_bias#Hostile_attribution_bias
Title: Re: A different kind of dithering?
Post by: AndyU on September 15, 2015, 04:43:21 pm
..

I think it is pretty darn weird to want to listen at "high-quality" and to you (and some others) this means with all of the cool features of MC that improve sound quality turned off. I'm with Hendrik. I can't imagine wanting to use MC without at least Volume Leveling turned on.

..

Classical music has such a range, and dynamic range, that volume levelling between works would rarely give a useful result. Suppose you listen to a string quartet, or solo violin, after an orchestra. At what level should the second piece be played? As though the solo violinist were in the same concert hall as the orchestra - in which case very quietly, or as though the soloist were in the room with you, in which case much louder? It's an aesthetic decision that I prefer to make as a listener, and dependant on many things, including the style of the recording and it's content. It is most certainly not at all weird to prefer to make the choice myself.
Title: Re: A different kind of dithering?
Post by: glynor on September 15, 2015, 05:03:09 pm
https://en.wikipedia.org/wiki/Attribution_bias#Hostile_attribution_bias

Perhaps. It did seem like you were frustrated to have to explain yourself.  Explanation was obviously required, since there are plenty of legitimate "other ways to do it" was what I meant.

I certainly accept that it is difficult to read tone on the forum. I meant no offense and I assume you didn't either.
Title: Re: A different kind of dithering?
Post by: glynor on September 15, 2015, 05:05:25 pm
It is most certainly not at all weird to prefer to make the choice myself.

Yeah, but using volume leveling doesn't stop you from doing that. That's what's weird about it.  It gets you closer, is all.  You still have, you know, a volume control.

Like I said, it is fine, and you can turn it off. I don't think it is even on by default.
Title: Re: A different kind of dithering?
Post by: JimH on September 15, 2015, 05:51:07 pm
I'm going to let this go a little longer but close it soon. 

JRiver staff doesn't have time to be discussing all the details of dithering, and I personally think we've reached the very edge of what might possibly affect audio quality.  I don't want our development effort focused on all the things that "might" affect quality.  We need to draw a line and I think we're already a little bit past that line.

Or as we say in Minnesota, we have bigger fish to catch.
Title: Re: A different kind of dithering?
Post by: DarkSpace on September 15, 2015, 06:50:24 pm
TPDF dithering is stronger than your typical video dithering, and as such it will also modify a signal if it has no rounding errors.
Thanks, so that's where my misconception was.

Like I explained in an earlier post, trying to detect such a bit-exact condition and dynamically turning dithering off is rather complex and risky at best. I rather dither when not needed than accidentally disable dither when it would be needed.
I read that post, but because when I read it I still had a false preconception, it didn't clear up my confusion. Now, the post makes much more sense. :-[
For what it's worth, those were questions fueled merely by curiosity, because I've come to greatly appreciate Volume Leveling myself.
Title: Re: A different kind of dithering?
Post by: fitbrit on September 15, 2015, 10:27:17 pm
https://en.wikipedia.org/wiki/Attribution_bias#Hostile_attribution_bias


Thanks for that. It will be useful in the future, no doubt.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 15, 2015, 10:47:20 pm
Hi, yes I have a 24 bit DAC but I have a USB to SPDIF converter that outputs only 24 bit but the ASIO driver only accepts 32 bit or at least it is able to. So how do you/we know that it only uses 24 of it's 32 bit input?

I guess this is my point, I don't know if it truncates 8 bits from 32 input and then outputs 24 from or it dithers down from 32 bit input to 24 and then outputs it. And if it's actually the latter I'll have to ask my original question again in that is it better to turn dithering off as to prevent double dither? And if the latter is true (32 bit input into the USB to SPDIF ASIO driver is dithered down rather than truncated to 24 bits) then dither or no dither then I believe it to actually be the technically superior option.

Am I at least making sense? If I'm talking rubbish I'd just prefer to know.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 15, 2015, 10:47:56 pm
have you been following this post? http://yabb.jriver.com/interact/index.php?topic=100095.0 (http://yabb.jriver.com/interact/index.php?topic=100095.0)

Sort of.
Title: Re: A different kind of dithering?
Post by: AndyU on September 16, 2015, 01:17:22 am
I'm going to let this go a little longer but close it soon. 

JRiver staff doesn't have time to be discussing all the details of dithering, and I personally think we've reached the very edge of what might possibly affect audio quality.  I don't want our development effort focused on all the things that "might" affect quality.  We need to draw a line and I think we're already a little bit past that line.

Or as we say in Minnesota, we have bigger fish to catch.


Sorry, if I've moved the thread off-topic, and please leave it open long enough at least for Bob Katz to post his measurements. fwiw I think it is excellent that you have responded to his request, which was considered and well argued IMO, and I'm happy to trust his judgement until I'm in a position to use my own.
Title: Re: A different kind of dithering?
Post by: Hendrik on September 16, 2015, 03:06:30 am
Double dither at 24-bit is not as bad as potentially not dithering at all. Unless you can proof it one way or the other, I would go with the safer option myself.
In a similar situation, many ASIO drivers request 32-bit even when the DAC is only 24-bit, including mine. I can't be sure if they dither at some stage, so I prefer to tell MC to dither to 24-bit, just to be on the safe side.
Title: Re: A different kind of dithering?
Post by: stewart_pk on September 16, 2015, 06:35:22 am
Thanks for all the replies. I will leave dither on. I may be wrong but I'm going to assume for now that the Thesycon ASIO driver does in fact support true 32 bit data and not just 24 bit data in a 32 bit package (padded). Once again assuming this is the case then I think outputting 32 bit is the technically superior option.
Title: Re: A different kind of dithering?
Post by: JimH on September 16, 2015, 07:18:13 am
I'll close it now.  Bobkatz, if you need to post measurements, let me know and I'll open it again (briefly).  I'm jimh at jriver.