Is Dithering Necessary for 32-bit Float to 24-bit?

Hi all,

I’ve recorded in 32-bit float / 48 kHz and am exporting to 24-bit / 48 kHz.

According to the “Mastering the Mix” team, dithering isn’t necessary in this case:

“Technically, you do not need to apply dither when bouncing a 24-bit file from a 32-bit float session, as it has the same bit depth. However, you should apply dither when bouncing a 24-bit file from a 32-bit fixed-point mix.”

Do you agree with this?

Thanks

1 Like

The 32 bits vs the 24 bits are all zeros, so you don’t have to worry. In other words, a 24-bit file saved as a 32-bit float file would stick 8 extra bits of emptiness in there.

Think of it like you’re just removing the zeros, so nothing needs to change with the audio.

2 Likes

So, what is the point in using 32-bit float than?

When he recorded in 32-bit float, he gave himself a ton of dynamic range to work with. Those empty 8 bits would be used at the time of recording when he needed to use them, but now that he’s no longer using them (since he’s not clipping his system and he’s got his levels in check and is ready to bounce the audio down), he can simply not include them in the bounce.

1 Like

I think the OP may be dithering in the opposite direction? 32 to 24 bit? So bits will be chopped off?
I would just experiment.

1 Like

So, when normalizing after recording with 32-bit, some information is lost?

In this context, I wonder, if there is 32-bit int useful, because all the values have equal distance.

(No true 32-bit int AD/DA converter is known to me, though.)

I recommend checking out the Copilot app and asking it all about this topic. It will answer everything for you very well. To answer your question directly, if you’re still in 32 bit float when you normalize, you have not lost any information. Because normalizing will simply turn it down, or up, but it won’t remove stuff.

Well yes, but at some point, there must be a loss of information, because the full 32-bit float format does not fit into 24-bit int.

Pidgeon

Ok, trust me when I say this - ignore everything you heard and read before. Go watch this video and you will know everything about when to dither and why. You’ll be an expert for 50% of the topic.

6 Likes

Basically: No, it’s pointless. 32bit int might be useful for some people in some extreme cases (I think about people archiving sounds for libraries (no, not sample libraries, real libraries) or so). For us normal mortals it is overkill.

I don’t want to confuse 32-bit float with dithering, so I will step out, because I’m not enough of an expert on that topic, and I gave some wrong info earlier, which is never good. 32-bit float isn’t 24 bits with 8 zeros on the end - I had heard that years ago and just repeated it and I should have known better. For that, I apologize.

2 Likes

As far as I know, an “int”-format is rather easy to understand in comparison to a “float”-format.

I always get a headache, when it comes to float…

“float” is just a kind of interger-arithmetic with its own very special rules.
Why that? it is stored in bits, finally, and those are integers, either ones or zeroes.

I would worry about dithering ONLY if reducing a 32 or 24 bits integer record to 16 bits. Otherwise, it’s useless.

My 2 cents…

1 Like

All that quote in the OP states is that if you are exporting/bouncing your mix from your arrangement, don’t dither, there is no need.

If you have a 32 bit fixed point 2 track WAV file you are converting, NOW you dither to 24 bit.

I don’t know why people feel the need to use 32 bit outside of the DAW, it’s not like its ‘magic sauce’ that makes your crappy tracks suddenly sound like top 10 hits or anything and there certainly isn’t this ‘other world of sound’ added to the mix either. Cubase works internally with 32-bit floating point math, your source material is still whatever bit rate/sample rate it was recorded at regardless.

It has to do with what the 1’s and 0’s represent. Just imagine that you open up any file at all on your computer and you look at the data as 1’s and 0’s only - how can you tell what any given set of numbers mean? Are you looking at a part of a spreadsheet or an audio file or an image or a program?

I think what someone tried to say earlier in the thread was that the usual 24-bit content "fits within" the 32-bit float file. Look at the image. A 24-bit (fixed) file would have the bits in red plus the sign bit in blue, and it would fit “within” the entire 32-bit word.

What the remaining green bits do for us is scale that actual value up and down along a much, much longer scale.

We increase the dynamic range of our signal by using those green bits. That’s the benefit of float. 32-bit float and 32-bit integer may “look” ‘the same’ to our human eyes but the information contained is different because of what the numbers represent. The file itself will tell the computer if it is a 32-bit integer file (think of that as 31 red bits and one blue) or the 32-bit float in the image. The computer will treat it accordingly.

4 Likes

That was meant as an insider joke… (and there is some truth in it, though.)

Technically, yes, there are very small values in 32 bit floats that can’t be accurately represented in 24 bit integers, but the error here is going to be so small and only significant at absolutely tiny amplitudes that I doubt it would ever manifest as something audible to humans.

So, no dither when bouncing from 32-bit float to 24-bit.

This raises another question:
My distributor accepts 24-bit/48- 96 kHz files, so I upload this format (say 24/96) to their platform, and they deliver it to streaming services. Some platforms (e.g., TIDAL) accept 24/96, but others (e.g., Spotify) use 16-bit/44.1 kHz.

As I’m not sure if dithering is handled at all, or - if it is - who handles it (the distributor or the platforms), I wonder if it might be better to upload a 16-bit/44.1 kHz dithered file from the start to ensure the best quality.

Any thoughts?

If that is possible, then yes. You’ll have full control how the files will sound.

I thought so, but this way I lose the opportunity to upload higher-quality files to platforms that support them (like Tidal). I guess either I’ll have to compromise or risk relying on platforms to handle the dithering.