Dither confusion

For everything after the recording stage: hardware/software and how you use it.

Moderator: Moderators

Dither confusion

Post by RichardT »

I’m confused - should I dither or not when converting from Cubase’s internal 64 bit floating point representation to 24 bit PCM?

As far as I can see, the dither signal is around -140dB when outputting at 24bit, which is way below the noise floor of any real world converter.

And yet some people who should know say that yes, you should dither when reducing word-length to 24 bit.

What’s the truth here?
Last edited by RichardT on Sun Apr 11, 2021 6:02 pm, edited 1 time in total.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by Hugh Robjohns »

The rule is very simple: a digital signal MUST be dithered whenever the word-length is reduced.

I'd like to think Cubase would do it automatically for a fixed-point 24 bit output, but if it doesnt then technically yes, it should be manually dithered.

While it is true that your A-D converter (or ambient recorded acoustic) noise floor will be well above the -141dBFS 24-bit digital dither noise floor during the playback of recorded audio, that won't be the case when fading down or up from 'digital silence' between tracks. So while the quantising distortions due to the lack of dither might well go noticed by most listeners, you cant guarantee it and you will definately get technically better results if you do dither the output.
Last edited by Hugh Robjohns on Sun Apr 11, 2021 7:28 pm, edited 1 time in total.
User avatar
Hugh Robjohns
Moderator
Posts: 38984 Joined: Fri Jul 25, 2003 12:00 am Location: Worcestershire, UK
Technical Editor, Sound On Sound...
(But generally posting my own personal views and not necessarily those of SOS, the company or the magazine!)
In my world, things get less strange when I read the manual... 

Re: Dither confusion

Post by RichardT »

Thanks Hugh, that makes perfect sense. I hadn’t thought about fades.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by MOF »

I think you’re confusing the 64 bit internal resolution and the 24bit audio.
Ideally your audio should be at 24bit and whatever sample rate you’ve chosen then dithered (and maybe rate converted) to 16bit 44.1khz for CD standard audio.
If you’re not exporting to CD format there’s no need for dither. MP3 formats are automatically converted from 24bit. The 64bit is for all the mathematical handling of data, such as reducing rounding errors as I understand it.
MOF
Frequent Poster
Posts: 2264 Joined: Thu Mar 06, 2003 12:00 am Location: United Kingdom

Re: Dither confusion

Post by The Elf »

It doesn't matter what Cubase is doing internally (that's where the 64-bit comes in) - that's just the internal processing. When you create a new Project in Cubase you set the 'native' format for the Project and it is this that you need to refer to when considering dithering.
Last edited by The Elf on Sun Apr 11, 2021 7:42 pm, edited 1 time in total.
User avatar
The Elf
Forum Aficionado
Posts: 20028 Joined: Tue Aug 14, 2001 12:00 am Location: Sheffield, UK
An Eagle for an Emperor, A Kestrel for a Knave.

Re: Dither confusion

Post by Hugh Robjohns »

There is some extra confusion around the 64-bit float format...

With 32-bit float the mantissa is 24 bits long, so assuming your final mix doesn't exceed 0dBFS there is no word-length reduction in producing a 24-bit fixed-point output, so technically, no redithering is necessary.... But in practice it won't do any harm to add it and at least it guarantees a consistent noise floor when fading to/from digital black.

With 64-bit float, the mantissa is obviously longer, so dithering to 24-bit fixed-point is necessary. The only question is whether Cubase (and other Daws) take care of it automatically, or not.

In practice, it wouldn't matter if you dithered any way. The noise floor would rise to -138dBFS... But that's still 10dB lower than the best D-A I've ever measured...
Last edited by Hugh Robjohns on Sun Apr 11, 2021 7:56 pm, edited 1 time in total.
User avatar
Hugh Robjohns
Moderator
Posts: 38984 Joined: Fri Jul 25, 2003 12:00 am Location: Worcestershire, UK
Technical Editor, Sound On Sound...
(But generally posting my own personal views and not necessarily those of SOS, the company or the magazine!)
In my world, things get less strange when I read the manual... 

Re: Dither confusion

Post by CS70 »

If what you bounce is below 0dBFS in the 24 bit full scale, no.

double (or "float64") numbers can represent signed integers between 2^-53 and 2^53 precisely. 24 bit samples are integers between 0 and 2^24 (i.e. individual distinct values that can be accepted or theoretically produced by a 24 bit D/A or A/D converter). So, once a properly coded mixing engine has done its job into a bus and the bus is below 0 dBFS (where the full scale is for 24 bits words) all values in that bus will fit in the 24 bit range without any need of approximation (incidentally, single precision floats - i.e. 32 bits floating point - can also represent the integers up to 2^24 precisely... only just. So it's the same also for mixing engines using "float" instead of "double", aka 32 bit floating point instead of 64).

In other words, "double" has space for way more integers than needed to completely cover a 24 bits integers space; "float" has just enough.

It's different when you cut the number of bits in an integer representation: in that case your target integer number space is much smaller, therefore large sets of different 24 bits integer numbers are forced into the same 16 bit integer number. Dither is a way to choose the best representative one (alternatively, you can simply think of truncation, and how to select the best approximation).
Last edited by CS70 on Sun Apr 11, 2021 7:57 pm, edited 5 times in total.
User avatar
CS70
Longtime Poster
Posts: 7798 Joined: Mon Nov 26, 2012 12:00 am Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Dither confusion

Post by MOF »

Hugh and CS70, is the 64bit value something that has to be set in Cubase?
I thought floating and fixed point values were something set by the program coders.
I have Logic X , I know of no setting other than ticking 24bit to replace the standard 16bit rate.
MOF
Frequent Poster
Posts: 2264 Joined: Thu Mar 06, 2003 12:00 am Location: United Kingdom

Re: Dither confusion

Post by CS70 »

MOF wrote:Hugh and CS70, is the 64bit value something that has to be set in Cubase?
I thought floating and fixed point values were something set by the program coders.
I have Logic X , I know of no setting other than ticking 24bit to replace the standard 16bit rate.

Not an expert about Cubase, but I would be surprised if it were possible - it would mean switching between two different mixing engines. :) As you say, a mixing engine is coded and compiled in a certain way (e.g. declaring "float" or "double" in C/C++ as types of the numbers under calculation - aka single or double floating point).

It's usually set, and the only difference is the amount of additional "headroom" over 0dbFS that you get when moving data (i.e. calculating) between buses (and potentially the size of error in the calculation, but properly coded engines use well-behaved algorithms so it's not a big difference at all).
Last edited by CS70 on Sun Apr 11, 2021 8:09 pm, edited 2 times in total.
User avatar
CS70
Longtime Poster
Posts: 7798 Joined: Mon Nov 26, 2012 12:00 am Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Dither confusion

Post by MOF »

Thanks CS70, that’s what I thought.
MOF
Frequent Poster
Posts: 2264 Joined: Thu Mar 06, 2003 12:00 am Location: United Kingdom

Re: Dither confusion

Post by RichardT »

The Elf wrote:It doesn't matter what Cubase is doing internally (that's where the 64-bit comes in) - that's just the internal processing. When you create a new Project in Cubase you set the 'native' format for the Project and it is this that you need to refer to when considering dithering.

That’s the recording bit depth? As soon as you apply gain changes or any processing to that channel, though, the signal is going to be at 32 or 64 bit float, irrespective of the recording bit depth.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by RichardT »

Hugh Robjohns wrote:There is some extra confusion around the 64-bit float format...

With 32-bit float the mantissa is 24 bits long, so assuming your final mix doesn't exceed 0dBFS there is no word-length reduction in producing a 24-bit fixed-point output, so technically, no redithering is necessary.... But in practice it won't do any harm to add it and at least it guarantees a consistent noise floor when fading to/from digital black.

With 64-bit float, the mantissa is obviously longer, so dithering to 24-bit fixed-point is necessary. The only question is whether Cubase (and other Daws) take care of it automatically, or not.

In practice, it wouldn't matter if you dithered any way. The noise floor would rise to -138dBFS... But that's still 10dB lower than the best D-A I've ever measured...

Cubase doesn’t dither automatically. I use Pro-L to do it.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by RichardT »

MOF wrote:Hugh and CS70, is the 64bit value something that has to be set in Cubase?
I thought floating and fixed point values were something set by the program coders.
I have Logic X , I know of no setting other than ticking 24bit to replace the standard 16bit rate.

Yes in Cubase, it’s possible to choose whether the audio engine works at 32 or 64 bit float.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by CS70 »

I stand corrected. Fun. Guess it may help a little with performance and RAM usage.
Last edited by CS70 on Sun Apr 11, 2021 10:14 pm, edited 1 time in total.
User avatar
CS70
Longtime Poster
Posts: 7798 Joined: Mon Nov 26, 2012 12:00 am Location: Oslo, Norway
Silver Spoon - Check out our latest video and the FB page

Re: Dither confusion

Post by MOF »

Yes in Cubase, it’s possible to choose whether the audio engine works at 32 or 64 bit float.

I presume that’s on the PC to match the plugins, all modern Macs run at 64bit and support for 32bit was dropped a while ago.
MOF
Frequent Poster
Posts: 2264 Joined: Thu Mar 06, 2003 12:00 am Location: United Kingdom

Re: Dither confusion

Post by RichardT »

MOF wrote:
Yes in Cubase, it’s possible to choose whether the audio engine works at 32 or 64 bit float.

I presume that’s on the PC to match the plugins, all modern Macs run at 64bit and support for 32bit was dropped a while ago.

No, that’s something different - 32 bit addressing. Cubase is a 64 bit app on all platforms in that sense and only supports plugins with 64 bit addressing. The 32 / 64 bit choice in Cubase is about the word length of the data.
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland

Re: Dither confusion

Post by merlyn »

These are a couple of points I have found make dither more understandable :

- Hardware is 24 bit

When you hear playback from your speakers the digital audio has been truncated.

- Dither is part of PCM audio

Dither turns a non-linear system into a linear system with a small amount of noise. Quantisation error is correlated with the signal -- that means it is distortion which means in its raw state PCM is non-linear. Adding dither gets rid of quantisation distortion making the system linear at the price of a small amount of noise.

With 16 bit recording dither was added before the A/D process. With 24 bit that is unnecessary because the noise from analogue electronics serves as dither.

A question I've seen more than once is from people who want to use hardware effects as inserts in their DAW. A track goes out through the D/A, through the hardware, and back in through the A/D. Should that be dithered on the way out? Yes.

For an application like this, where dither might be used more than once on the same audio, it's recommended to use triangular dither.

For the final dither it's recommended to use noise shaped dither.

The question is then -- what do you want a 24 bit file for? If this is to be given to e.g. a mastering engineer then you could export at 64 bit float and you wouldn't need dither.
merlyn
Frequent Poster
Posts: 1232 Joined: Thu Nov 07, 2019 2:15 am
It ain't what you don't know. It's what you know that ain't so.

Re: Dither confusion

Post by worshiptuned »

RichardT wrote:That’s the recording bit depth? As soon as you apply gain changes or any processing to that channel, though, the signal is going to be at 32 or 64 bit float, irrespective of the recording bit depth.

yes but then, after this real time processing at 32bit float or 64bit float the file is recorded at the set recording bit depth. Then for the dithering you have to consider the recording bit depth
from Cubase manual
see the paragraph Bit Depth

source:
https://steinberg.help/cubase_pro/v10/e ... log_r.html
worshiptuned
Regular
Posts: 138 Joined: Mon Feb 08, 2021 3:36 pm

Re: Dither confusion

Post by worshiptuned »

CS70 wrote:Guess it may help a little with performance and RAM usage.

Greg Ondo of Steinberg explains at 48:55 that the 64 bit float processing precision is intended for recording at 32bit integer, some Steinberg soundcards have this option, I think also others as Merging Anubis. He says he made a blind test and there is a better audio quality (subjective)

https://www.youtube.com/watch?v=RFXBscdP5nQ
worshiptuned
Regular
Posts: 138 Joined: Mon Feb 08, 2021 3:36 pm

Re: Dither confusion

Post by RichardT »

worshiptuned wrote:
RichardT wrote:That’s the recording bit depth? As soon as you apply gain changes or any processing to that channel, though, the signal is going to be at 32 or 64 bit float, irrespective of the recording bit depth.

yes but then, after this real time processing at 32bit float or 64bit float the file is recorded at the set recording bit depth. Then for the dithering you have to consider the recording bit depth
from Cubase manual
see the paragraph Bit Depth

source:
https://steinberg.help/cubase_pro/v10/e ... log_r.html

Yes, and if you add processing to the recorded track after you’ve recorded it, it will be back at 32 bit or 64 bit float!
RichardT
Frequent Poster
Posts: 4177 Joined: Fri Aug 13, 2004 12:00 am Location: Ireland
Post Reply