View Single Post
Old 9th April 2007
Gear Nut

Originally Posted by Geert van den Berg View Post
Nice to have you here Justin! I hope more developers will follow.

A thread in Music Computer forum questions the 64 bit engine in Sonar.

In one reply it's mentioned Reaper has a 64 bit engine as well.

Can you explain what its advantages are? And if there are any benefits to the sound of a DAW or if it's just a way to make the application work more efficient with the hardware.
For the purposes of this post I'll compare 64 bit floating point with 32 bit floating point. Integer samples have their own advantages and disadvantages compared to floating point.

As a bit of background, floating point numbers are capable of representing a range of numbers that is MUCH larger than an integer sample of the same number of bits, which is useful, but the drawback is that they can't represent EXACTLY many numbers in that range.

Both 32 bit and 64 bit floating point numbers can exactly represent any normalized 24 bit integer sample.

However when processing audio (applying FX, summing signals, etc), there are operations that can end up with results that will not be exactly represented by the floating point numbers. So tiny errors are introduced.

These errors are arguably not a big deal, as they are very small and should typically be well below the precision of any ADC or DAC anyway, but they can also add up. Using 64 bit floating point keeps these errors many orders of magnitude smaller.

The chief disadvantages that I can see for 64 bit floating point are increased memory use, increased memory bandwidth use (which also leads to increased CPU use, though less and less on the newer Athlon64 and Core2s), and more chance of denormalization related slowdown.

We chose at the start to use 64 bit throughout, planning on newer faster machines with more memory and memory bandwidth, and so that we wouldn't have to deal with upgrading everything if it became important later.