An extremely nerdy post about 32-float
I got this question today from one of my favorite mentees, the very excellent Clara Baker:
Why bounce for the master at 24 bit instead of 32 float?
Great question! And, fair warning, what follows is very nerdy 🤓
If your “to mastering” file isn't peaking above 0 dBFS, which it won't be, then the 32-float file and the 24-bit file will be basically identical! So that's the simple answer. But read on for the explanation, and for MAXIMUM NERDING OUT:
A 32-float file isn't 32 data bits; the extra 8 bits are an exponent, which allows for the range of the data to be multiplied out to accommodate levels that go over 0 dBFS. WAY over.
Therefore, when the level isn't over 0 dBFS, those extra 8 bits don't need to be used. So essentially you just have a 24-bit file anyway: a 32-bit file in which 8 bits aren’t being used.
That said, don't sweat it, bouncing in 32-float is great, there's no downside. BUT YOU ASKED AN ENGINEER, AND THIS IS WHAT YOU GET. 🤣
TECH MOMENT: to be totally technically accurate, a 32-float data word is composed as follows:
1 sign bit (to indicate positive or negative)
8-bit exponent
23-bit mantissa (the data part)
… and a 24-bit data word is composed as follows:
1 sign bit (to indicate positive or negative)
23-bit mantissa (the data part)
In other words, both 24-bit and 32-float audio data only actually have 23 bits of audio data! Who knew.
Bonus content: because 32-float can use its exponent bits to accommodate levels waaayyyyyy above 0 dBFS — 770 dB above, to be precise — another totally viable option when bouncing a “to mastering” file is not to put a -10 dB Trim plugin before your limiter, and just simply bypass the limiter and do the bounce at 32-float.
The resulting file will have values way over 0 dBFS — it will be over by as much as you were hitting the limiter — and it will *look* clipped to the recipient — but it's not actually clipped, it’s just that the computer doesn't know how to draw waveforms for something above its theoretical peak level.
The recipient merely needs to gain the file down to whatever preferred loudness before working with it; it's not actually clipped at all, because, again, 32-float files have 770 dB of headroom. You can’t clip them. But unless the person on the receiving end knows all this, which a lot of people don't, this can trip them up, so it's probably best not to do this, and just to send the <0 dBFS file to avoid confusion.
Another 32-float Fun Fact™: if you have converters that can record in 32-float, it's literally impossible to clip them. Because, again, exponent bits and 770 dB headroom. Some zoom recorders can do this, which is an amazing affordable option for recording location sound, because it’s totally foolproof — you never have to worry about overloads.
Here's a good article on this for further reading, with pictures: https://www.sounddevices.com/32-bit-float-files-explained/
And here’s all the info you could ever want to know about fixed-point integers in a DSP context: https://www.dspguide.com/ch4/2.htm
🤓🤓🤓🤓🤓🤓🤓🤓🤓 — jamie