32bit float – Is there anything to Gain?

High dynamic range analogue inputs

We’re getting to a stage where most professional recorders (and a number of ‘prosumer’ ones) operate with analogue inputs capable of capturing very high dymamic range. In fact, some have little or no amplification in front. For example, the Sonosax R4+ and AD8+ which I’ve talked about before in more detail. Some specs quote 135dB+ of dynamic range- that’s equivalent of being able to capture a pin drop to a jet taking off.

This is usually done with the signal being split between more than one analogue to digital converter chip, with each set to different sensitivities; converting the voltage level to a digital value. It’s like recording the same source to 2 inputs with different gain settings for safety- but it’s combined as the same signal.

24 bit converters (even multiples) can’t actually reproduce 24bits accurately though. That’s 144dB. Or in plain numbers 2^24 = 16777216 different values. We’re currently maxing out around 23bits (138dB) .

Analogue garbage = Digital garbage

So we have these wonderful converters- what about our wonderful analogue sources? They can’t manage as much, now- we’re limited by physics with microphones. Smaller diaphragms have more uniform frequency response but higher noise. DPA have a good overview of this on their website. Also condenser microphones always have an equivalent input noise level, which is their ‘base level’. If the sound you’re trying to record is around the level of the input noise- you’re recording a lot of the input noise compared to the source. You’re not going to be able to get around this with amplification or conversion as the issue is at the microphone. Even if your microphone can manage over 120dB dynamic range- it has to be at the right level, if the signal is down in the bottom 20dB or so then it’s going to be fighting the noise. Adding to this is the amplifier noise- it’s lower but will add to the noise floor of the microphone.

What is Gain any more?

In a lot of cases, the gain knobs in our machines aren’t controlling a mic preamp any more. It’s controlling digital gain- just multiplying the signal by a number, which is exactly the same case in post production where you have a waveform and want to make it louder or quieter and add or remove gain in the editing software. It doesn’t change what’s coming in, just the level of what gets sent to a track.

What’s the floating point?

Once the audio is in a DSP system (such a digital mixer), any changes made are with mathematical operations- multiplication, division, addition, subtraction. This means that the numbers in these operations can get significantly bigger. Once you’ve already got a 24 bit number, and multiply it by something- even if it gets divided again it needs space for more digits. With fixed point calculations, that’s exactly what happens- some systems use 40bit or 56bit numbers for calculations.

Another way of doing this is to ‘move the decimal point’. To make a simpler example, say your biggest number in a system is 99. Using fixed point arithmetic it can’t change, however if you could add a decimal point, the 99 could be expressed as 0.99, 9.90 or 99. What was 100 different numerical levels is now 10000.

However, if you make a calculation which results in fraction or irrational number- you end up with a load of digits. If the decimal point moves again, you’ll need to round the number to the nearest digit, so some precision can be lost with these calculations.

Both higher level fixed point and floating point allow levels higher than 0dBFS to exist within the system.

32bits = 24bits (or 23)?

Something floating point numbers require, along with the value is to record where the decimal point is. This needs another number. It also needs to record if it’s a positive or negative value.

Here’s a breakdown of a 32bit float representation base on IEEE754 format (standard for a lot of computer hardware systems) – (image licensed under CC BY-SA 3.0)

The sign bit sets whether the number is positive or negative, it’s -1 to the power of either 0 or 1. So, (-1)^0= 1 and (-1)^1= -1

The 8 exponent bits are to set where the decimal point is. If we were in base 10, to move a decimal point we’d multiply by a multiple of 10. So multiplying by 10^1 =10 would move the decimal point one point to the right. To undo that you’d multiply by 10^(-1) = 0.1. On the example, as we’re in base 2, we’d multiply by 2^124. However we also need to be able to go down as well as up. 8 bits allows 256 values, so IEEE174 allows the top 128 as positive and bottom 128 as negative, so 127 is taken away from that number. 2^(124-127)= 2^(-3)

The 23bits of fraction is the actual value we’re processing, however 24 bits of precision is possible with this method. Because the exponent dictates where the first part of the number will be, it’s always going to be 1 if there is an exponent- so we get a ‘free’ bit.


So, what comes out at the other end? For us to hear it, it needs to feed digital to analogue converter. These can have similar performance to high end ADCs (i.e. 22bits+ of dynamic range), but even with the (theoretical) amplifiers and speakers to keep up with it, do we want to or can our brains deal with pindrop to jet engine? A lot of people are finding cinema dynamics too much- having to strain to hear dialogue then be deafened by an explosion. Some 32bit DACs may be designed to be fed floating point information, but the performance output won’t be any better than 23bits.

What is it good for? [TL;DR]

Given that we can’t get more than 22bits or so of useful information in or out of any system (and I’m not sure we need to), it doesn’t make a difference to inputs or outputs. 32bit float is very useful inside machines for making calculations and some of our gain controls are now mathematical operations done in DSP, rather than controlling analogue amplifiers. If you’re using a 32bit float recorder, your gain knobs are very likely to be controlling digital processes and nothing in the analogue domain. If the files stay digital as 32bit floating point files, the maths can be undone (try exporting a 32bit file in a DAW and re-importing it). If they’re ‘baked in’ at 24 bit with an overload, then there’s missing information in the file as it’s a number bigger than the file can use.

However, if you don’t do any maths to the input and leave it as is, then you’ll also get what goes in and the maths can be done later in post production. In some systems this may mean it’s difficult to monitor, though.

What’s it bad for?

Not all programs are designed to read 32bit float audio files. A lot can, but some picture editing programs can’t or may not. A lot of the time we don’t always know the post workflow, there may be ingest programs used or older software kept on to stick with a specific workflow.

If a program expecting a 24bit .wav file gets a 32bit float one, it’ll see it as a 24 bit file and not see any of the information above 0dB, so anything clipped will not be recoverable.

If you’re going to use them, ensure you do a workflow test with audio running over 0dB or if your recorder only records in 32bit floating point- don’t clip it!

Leave a Reply

Your email address will not be published. Required fields are marked *