seby wrote: Wed Jan 10, 2024 8:33 pm
Here is an experiment that everyone can try. Get a high-res file of a track with some good dynamic range. I like to use a 96/24 render of Dire Straits' "Ride Across the River", but most things will do. Do it to Shellac. Import the track into your DAW. Then export it at 44.1/16, and with _no_ dither. (You might need to do a quick google search to find out how to turn off your DAW's built in dithering function if it is not somewhere obvious at export).
Now give it a listen at a nice loud volume. Sounds like crap right?
There are two things at work making it sound like crap:
1) Truncation distortion at the loud parts.
2) Quantising errors at the quiet parts and transient tails (which are really just other quiet parts).
(1) is happening because the loss of dynamic range resulting from the move from 24 to 16 is cutting off the peaks. There is no dither to smooth things out, so you can hear the clipping.
(2) is happening because the rounding errors are far enough above the noise floor that we can hear them.
Sorry, I know this post is from a while back but I'm a mastering engineer and I can't help myself, this is just not correct. Going from 24 bit to 16, dithered or not, will never ever ever cut off any peaks. You could test it all day long and it will never happen because the 8 extra bits in a 24 bit file are all ON THE BOTTOM.
16 bits has a dynamic range of 96db, 24 is 144db. 0 is the top and it's the same for both of them, that never changes. When you go from 24 to 16 you are removing the information between -96db and -144db, that's all. There will never ever be any clipping, no peaks will ever be changed in the slightest.
In the test suggested here, if it *does* sound like shit it's because you're sample rate converting from 96 to 44.1 and your DAW is using some ancient SRC algo that sucks (any good modern SRC will be a total non-issue). The truncation distortion will all be down at -96. It sounds awful for sure, but even the most dynamic Dire Straits and/or Shellac song you can find will still be so far above the distortion you'd have to destroy your speakers and ears to hear it.
If anyone wants to understand this better, I propose this test: take a 24 bit file, save it as 16 bit, no dither. Line the two files up in your DAW, make sure they're exactly aligned to the sample, flip phase on one, press play. The difference will be the truncation distortion. You'll have to turn your monitors way up to hear it*. It will sound terrible: grungy, unmusical distortion.
Now do the same thing but this time dither to 16 bits. The difference will be the dither noise and it'll sound like regular plain old white noise.
Dithering doesn't "cover up" the truncation distortion, it ELIMINATES it. It does this by keeping the bottom two bits active, this is what the dither noise is for.
You should always dither when going from 24 bit to 16. Always, and it should be the last thing you do. If you're rendering/exporting a mix at 24 bit, technically you should dither that, it's the correct thing to do, but dither noise at the 24 bit level will be between -144 and -132db and this is just impossibly quiet, way below the noise floor of any D/A converter or analog gear, so in practice it's not going to matter.
If you don't want to think about this stuff at all, simply save/export all your files at 32 bit float and never think about dither again, except when you need to make a 16 bit file. What I've been doing for 20 years now. When you do need to dither, I recommend using plain old tpdf dither, no noise shaping.
*I personally never ever crank my monitors way way up and I'd rather you didn't crank yours either. I'm forgetful and if I fuck this up and hit play on a mix, everything goes poof. I'd prefer it didn't. So whenever I'm doing this sort of null test, I'll export the difference file and raise the gain on that in the DAW in order to hear it, keeping my monitoring volume where it normally is.