64-bit floating precision - pros/cons?

I always heard that 32-bit was way more than we would ever need. Why 64-bit? And does it take up more CPU or storage?

Thanks-

It offers more precision in the audio engine. It will add a little more CPU usage but does not affect the file size.

All the best,

Greg

1 Like

Thank you, Greg!

More precision ā€¦ what are the advantages of that (greater dynamic range? ā€¦ or is it something completely different than that)?

(Hobbyist more than engineer here, sorry!)

I always thought summing was done at 80-bit floating point anyway. So I donā€™t know what 64-bit is about. Tell me why this isnā€™t just a marketing number.

less rounding numbers so less errors when manipulating the audio signal. Every change to the signal will be closer to the original quality.

Do a blind test and see if you can hear a difference. ;p

Itā€™s cool to have though.

on older machines (2010 and before) itā€™s a no go terrain.
Way more resources are needed.
But ok, for me itā€™s a testing environment so no prob.

It sounds better, no question, clearer, deaper, more natural now, I am sure

I havenā€™t bought it, thatā€™s why Iā€™m asking :wink:


Iā€™m happy you think so! Why do you think that? Do you hear a difference? Are there other practical advantages?

Plugins that calculate in 64-bit fp donā€™t have to convert to and from 32-bit.

I canā€™t see where you would hear a difference, but others would disagree with me.

From Philippe, developer of Steinberg WaveLab:

The interest of 64 bit float is not about ā€œheadroomā€ / ā€œdynamic rangeā€ā€¦

pro:

no need to convert between 32 bit and 64 bit float: 64 bit is needed by some plugins for their internal computations. 64 bit then means: small performance gain and no precision lost between succeeding 64 bit plugins.
Better audio precision when mixing audio signals. I explain this at the end of this message.
If audio devices ever go beyond 24 bit precision, 64 bit float will be needed (because 32 bit float means, in fact, 24 bit precision)

con:

requires more memory, which can mean a performance lost (more memory to move). But as soon as a sophisticated plugin is used, this one is likely to become the bottleneck, compared to the memory overhead. Therefore, this is a ā€œrelative conā€.
64 bit CPU instructions are as fast as 32 bit instructions, because the CPUs are 64 bit today. But certain rare instructions are faster with 32 bit float, because the CPU can conjugate 2 of them while in the same time, only one 64 bit instruction is performed (SIMD).

Now, an explanation about 32 bit float vs 64 bit float, for mixing.
While 32 bit float means in fact 24 bit precision, 64 bit float means in fact 48 bit precision. This means, far more precision.
I can illustrate this difference with elementary school maths (this is an analogy of what happens in reality).

Letā€™s say samples can have only values 0, 1, 2, 3, 4, 5,ā€¦
Letā€™s start with a sample that has value ā€œ3ā€
An audio gain of ā€œdivide by 2ā€, is applied. We get the value ā€œ1.5ā€, but this value is not allowed hence must be rounded, eg. the new value becomes 1.
Later another gain ā€œmultiply by 2ā€ is applied. The new sample becomes ā€œ2ā€.

Consequence: we started from value ā€œ3ā€ and ended up with value ā€œ2ā€, while the two gains should have cancelled each other.

When this kind of loss is performed multiple of times (complex mixing), then errors stack up.
The consequence is not dramatic, because some errors are (randomly) compensated by others (round-down / round-up), but this compensation actually means ā€œdigital fogā€ aka noise.

64 bit float processing pushes the digital fog far from the 24 bit domain. Hence a cleaner result at the end of the audio chain.

The difference 32/64 is therefore about ā€œaudio definitionā€, if your ears can sensible enough. But thatā€™s another topic!
Philippe

3 Likes

Thanks ultradust, for sharing Philippeā€™s explanation. Very informative.

/Magnus

Even though no one can hear a differenceā€¦ Have a read here:

Then have a read on the whole thread, and the links provided:

The main thing is ? It it affecting processor speed ? It could be 64 Bit is better on a 64 bit machine. And 32bit is more processor heavy because of conversions to and from 64bit processing. So anyone did a speed test ?

To me 32bit processing is ok, i leave it for now. Because no one can hear any difference between 32bit and 64bitā€¦

Unfortunately, none of my Waves plugins seem to work at 64 bit.

That is why i leave it on 32bit, because if the plugins are actually 32bit processing, they must have 64bit processing. If not i did not know what happens. Maybe more can test this. I assume you have waves x64 plugins ? (not using Jbridge?).

I donā€™t think anyone can tell the difference in audio quality. Youā€™d have to be super human.

And your audio interface, amps and speakers need to have a dynamic range and noisefloor beyond (-)144db.

64bit mixing IS NOT about dynamic range, itā€™s about roundig accuracy and adapting word length.

2 Likes

Ultradust,
I think that using integers to demonstrate the error in floating point is not a good way.
I will use another example
I start with value 1
Divide by 3 equals 0.33333333333333333333333333333333333333333333333333333333333333333333333333333
32bit floating point precision will cut at 8th decimal value
You will get 0.3333333
Multiply by 3
you get 0.9999999
The error is 0.0000001 of expected value.
This error can be measured, but, can it be heard?
With 64bit precision it will cut at 17th decimal value and the error will be:
0.00000000000000001 of the expected value.

Regards,
LluĆ­s