32-bit float?!??

  • Thread starter Thread starter Aristo
  • Start date Start date
A

Aristo

New member
I don't understand why but mixing s/w seems to be sold on the merits of floating point calculations when any beginner programmer knows that floating point should never be used for anything that requires precision. Well, it just shouldn't be used really. So why is it used?

Is there a reason for this? Are the errors introduced on purpose to make it sound less clinical or is it just we can't tell the difference anyway? Or is floating point not used but they just say that to sell things?
 
Aristo said:
...any beginner programmer knows that floating point should never be used for anything that requires precision.
I didn't catch that - an integer has no precision, a floating point number does by definition of data type. How they're both leveraged by DSP is another thing I'm not really too hip about.

As to why use integer over floating point I have seen that discussed all over the web pros & cons. I have a Behringer DEQ2496 with a Sparc processor, some of the processing is done in 32bit float other stuff is done at 40bit integer. I also have some Kjaerhus and Voxengo VST plugins that use double precision 64bit float. Cakewalk and Adobe Audition use 32bit float on their internal busses.

If you find some cool links make sure you post a few - if you decipher them for us, even better!
 
There has been a lot of discussion here on this subject...do a search and you will find something.
 
kylen said:
I didn't catch that - an integer has no precision

Not quite true, it has a different type of precision. It's all in how you interpret the number.
 
masteringhouse said:
Not quite true, it has a different type of precision. It's all in how you interpret the number.
I thought I might catch some heat for this... :D

I'm meaning for an integer the number, for example, is either 1 or 2.

For a float it can be 1.nnn to 1.nnn, like 1.005 or 1.006...depending on the float size.

In a DSP depending on how it uses float, per our discussion the other day, the radix in a float can be given license to move around giving a larger quantity than the normal 23bit integer representation a 32bit float carries. That's what gives the 32bit float mix buss all that 1500dB of headroom...
http://www.bores.com/courses/intro/chips/6_precis.htm

If you go far enough down it's all just bits, but at the compiler you have data types (for our own protection) like float or integer or fixed point and even all of these can be 'cast' into a different data type so you can use the bits however you like. It's all what you do with it very true...
 
its really weird that everyone around the world thinks of the same thing at the same time. ive read over the 32 bit float thing in software manuals plenty of times and never put any thought into before. Just passed over them. Then i was rereading stuff in the Nuendo manual a few days before all the discussions came up and read again about the 32 bit floating and for some reason, that time i thought about it for about 32 minutes straight wondering why i never thought about it before. Then all of a sudden everyone started posting about it.

Anyway, this is related i guess. But seriously, philosophy stating that we are all somehow connected together in the world seems to prove itself countless times to me. Guess i could be coincidence.

Time to pull out Waking Life again :D.

danny

p.s. sorry, maybe should have posted this in the dragon cave.
 
darnold said:
... But seriously, philosophy stating that we are all somehow connected together in the world seems to prove itself countless times to me. Guess i could be coincidence.
Are you having a dream about a mountain in Wyoming too :confused: :D
 
Holy!

Yah except i thought it was a mountain in here in Idaho.






weeeeiiiirrd.

:D :D

danny
 
chessrock said:
Ya know ...

All we really are is just dust in the wind.

Ahhh yes. Quoted by the awesomist philosophers...

Bill and Ted.

danny
 
Fixed point integers vs. floating point "real" numbers are concepts from computer science, and can be researched e.g. on Google for free.

Nevertheless, a small overview:

  • A fixed point integer contains n bits. It is roughly possible to use a fixed point integer to represent any value in the range -1 * 2 power ( n - 1 ) to 2 power ( n - 1 ) - 1. If the integer is unsigned, it is possible to represent 0 to 2 power ( n ) - 1. Therefore 24 bit signed integers give you -8,388,608 to 8,388,607 in increments of 1, while 32 bit integers give you -2,147,483,648 to 2,147,483,647.
  • A floating point integer has 2 components: the base or mantissa, and the exponent. See http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm]IEEE floating point description for details on the format. A 32 bit floating point number can represent more distinct values than a 24 bit integer, but less distinct values than a 32 bit integer. However the values of a floating point number are most precise around 0. (Which, IMHO, makes perfect sense for the digital audio world, which requires higher precision close to 0dBFS than it does at at noise level. Whether or not audio software makers take this into account though, I can't testify.)

Another thing to consider when reading specs is that the underlying library algorithms are absolutely crucial to determining the specs. Huge libraries of signal processing mathematics functions have been written specifically with floating point (and, in some cases, integer) in mind. This determines the route which many companies will take in writing digital signal processing routines, which are all inherently math-intensive.

Generally speaking, signal processing on (native) personal computers is much more efficient using floating points -- because dedicated floating point coprocessors do all the work. However memory and especially bus bandwidth considerations are also factors in deciding what format to use.

When you get into dedicated digital signal processor chips (e.g. made by Analog Devices), a lot of research and development has gone into libraries which are not at all general purpose, and therefore numeric calculations will be done using whatever data format (int / float) the chip manufacturer has chosen to optimize.

All of this is interesting from a computer science point of view. But for the most part it is just marketing crap in the audio world. If you can hear the difference between 24 bit integer audio data, 32 bit floating point audio data, and 48 bit integer audio data, in a blind taste test, then you have much better ears than I.

$0.02,

Johann
 
Back
Top