Recording at 32bit-floating point with 24bit Audio Interface?

I use a Mackie Onyx Producer 2.2, 24-bit/192kHz Audio Interface.
Does it make sense to record at 32-bit floating point instead of 24-bit integer?

Bildschirmfoto vom 2024-04-05 21-07-49

32 bit float is a good choice while working on a session. It is not a particularly good choice fo a finished audio file, but that comes after an “export” step and is unrelated to this choice.

I don’t understand how/why I can record at 32bit with a 24bit interface…?

It’s a file format, not a sample format 32 bit floating point uses 24 bits for the mantissa. If the sample values remain below 0dBFS (2^24 - 1) they fit perfectly into the mantissa section.

The extra value comes in the (unlikely) event that you end up writing samples to disk that are over 0dBFS. Rather than clipping, you’ll get just a (tiny) amount of distortion.

1 Like

Is reading files in 32 float easier or faster in some way than converting 24 int files to float as they are read?

That’s probably highly system-dependent. In theory, you save the conversion cost from int24 to float but you also write 4 bytes per sample instead of 3 (maybe).

Not really a thing to be worrying about in 2024, methinks.

1 Like

Sure, going over 0dBFS is unlikely while recording. I’d say the real value of 32 bit float is that you can go way over 0dBFS without clipping during processing and mixing, which is where it’s much more likely to happen.


We’re talking about things here that mostly don’t matter at all, either way.

It’s difficult, though possible, to make an analog circuit that performs better than a 16-bit 44.1kHz ADC. (CD-quality) Having seen inside several professional analog mixing consoles, I would not expect them to meet that. Maybe 12- to 14-bit equivalent or so, but not 16. So if you’re driving your ADC from one of those, that’s your weak link, as good as you know it is by experience.

Individual outboard processing stands a better chance of being that good by itself, so again, the weak link is the console.

It’s physically impossible to make an analog circuit that even comes close to outperforming a 24-bit converter. So the bottom few bits of that will always be analog noise. As good as analog gear is, 24-bit quantization noise will always be far less than the analog circuit noise that feeds it.

The reason to upconvert from 24-bit integer to 32-bit float, or even 40-bit or 64-bit float, is to reduce the cumulative roundoff error from all the digital processing, to less than what the 24-bit integer DAC can resolve.

This makes the entire digital system practically perfect as far as any analog measurement can see. Any noise at the output is entirely the original input noise as affected by that practically-perfect processing.

A 32-bit floating point number does indeed have a 24-bit mantissa, but only 23 of those bits are actually stored. It is assumed to have a leading 1 that is not stored, and that 24-bit number is then shifted by the number of bits specified by the exponent.

You might (loosely) think of it as having a really fast limiter to feed the recording, so that the recording is always within 6dB of full-scale clipping, and the inverse of the limiter’s gain for each sample is also recorded as part of that sample. Playback has a fast expander that takes its gain setting directly from each sample, to produce an exactly-uncompressed output.

So where an integer format has a constant noise floor regardless of the signal level, a floating point format has a constant signal-to-noise ratio for each sample separately. So not only is it (almost) immune to clipping, but it’s also (almost) immune to getting buried in noise if you turn it way down and back up again.

Of course, that immunity still has limits: The 8-bit exponent (for 32-bit FP) or “expander’s gain” goes a long way but is still finite, and when it runs out of range, you still get the classic effects. And you can still wreck something by mixing it at a low level with something louder, and then removing the louder thing again from that sum.

Using more bits pushes all of those limits farther out, but the question quickly arises of, “What’s noticeable anyway?” For most things, the answer is surprisingly not much. Even 8-bit integer can sound good, and a live-concert or not-so-serious home listening environment can easily have enough noise to cover that even.

1 Like

To more directly answer the original question, the converter is always 24-bit integer. No way to change that. The option is whether to convert its output to 32-bit FP, or leave it as 24-bit int.

Or if you’ve done some processing by the time it hits that option, it’s probably FP already (see above about why to upconvert), and the option is what to convert that to.


This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.