Re: Another thread about summing in scope
Posted: Tue Jan 06, 2009 4:02 pm

Scope Users Community
https://www.scopeusers.com/forums/
First of all - Im usinf the "." as 1000 seperator and the "," as fractional point - that's standard in Denmark - sorry - that could be confusing.ReD_MuZe wrote:.........32bit float has more resolution than 32bit integer, and that conversion in the working range of float (-1 to 1?) to integer will yield no loss of data?
how is that logical?
Let us use 1,75 as an example - this would translate to the following :ReD_MuZe wrote:.........
this means that each "bit" reprisents a number:
23rd bit is 1.0
22nd bit is .5
21st bit is .25
and so on
so 1.75
is the 23rd, 22nt and 21st bits turned on.
As you can see from the above : Everytime we decrease the exponent, the range gets smaller, but we preserve all 23bit - so the precision gets better each time we decrease the exponent.ReD_MuZe wrote:.........which means
that the lower the number, the less bits you have for it.
since its not a linear format but an exponential one, you have more range - which means less resolution for the same range.
Im not trying to ignore you, I just dont know what to writeMike Goodwin wrote:Warp thank you for this very detailed post! I cant say that I completely understand the math mind you. Would you be willing to put this into a non mathematically sentence or two for me?
true, its simple at all.ReD_MuZe wrote:Tau wrote: most 90% of DSP math is 4th grade math (+-/*) 8% is 8th grade math (trigonometry, exponents , logs) and the rest of the 2% you can learn as you go along.
Floats have 1bit sign, 8bit exponent and 23bit mantissa - the 8bit exponent represents -126 -> 127. I would imagine that by headroom, you mean all numbers above (+/-)1, right? The "headroom" is handle by a POSITIVE exponent. The range 0 - (+/-)1 is handle by a NEGATIVE exponent.ReD_MuZe wrote:yes, but float is not from -1 to 1. you have a given headroom.
..
..
what i have seen is that you proove that if float 32float can have rougly the same resolution as 32int, providing they have the same range used for audio. and thats obvious they have the same amount of 0 and 1 combinations.
but they don't use the same range for audio.
data is getting lost. about 8 bits.
Yes?!? Not sure what you mean, since that proves nothing regarding negative exponents.ReD_MuZe wrote: last paragraph here:
http://www.dspguide.com/ch4/4.htm
Ehm, they're completely................WRONG!ReD_MuZe wrote: and in simple forums english:
http://www.gearslutz.com/board/masterin ... float.html
and ofcourse of you look here:The advantage of floating-point representation over fixed-point (and integer) representation is that it can support a much wider range of values. For example, a fixed-point representation that has seven decimal digits, with the decimal point assumed to be positioned after the fifth digit, can represent the numbers 12345.67, 8765.43, 123.00, and so on, whereas a floating-point representation (such as the IEEE 754 decimal32 format) with seven decimal digits could in addition represent 1.234567, 123456.7, 0.00001234567, 1234567000000000, and so on. The floating-point format needs slightly more storage (to encode the position of the radix point), so when stored in the same space, floating-point numbers achieve their greater range at the expense of slightly less precision.
afaik there is no way on earth to get the same resolution from two different ranges of the same bit depths.Single precision binary floating-point format
* Sign bit: 1
* Exponent width: 8
* Significant precision: 23 (24 implicit)
And which argument is that?ReD_MuZe wrote:...........which kills your earlier argument just buy itself, since now we can only use 31 bits of info, and we have half the resolution just because of that. (+ - 2^30).
Look here :ReD_MuZe wrote:...........but thats not all because now you need to compute also the small numbers, too see they don't crunch into integer. since integer cannot reach the ultra low numbers float can produce.
And we're right back to square oneReD_MuZe wrote:ok let me rephrase that:
"besides what is 32bit float? it has the usable audio resolution of 24bit integer :>"
better?
this was said regarding recording files in 24bits or 32bit float.
there is no sound quality gain. just some headroom, and noise floor. the audible range is 24bit.
I am not sure how you mean? And why?ReD_MuZe wrote:try the same, but mix 0.5*max with vdat
Thanks for sharing that. That is helpful information. I will switch to the FLT ASIO driver for going back and forth to my Host, Ableton Live. Just for information sakes Live works with "32-bit floating point".voidar wrote:Just did an experiment here using REAPER and Flexors Absolute Val Monitor.
Trying both ASIO2 32 and FLT drivers, I pass an absolute value from Scope through REAPER and back to Scope into a different monitor.
I discovered that the FLT driver holds greater precision at lower values (follows same value up to a specific point) than the 32 driver does, which is basically a value or two off the whole range. Closest to VDAT.
This seems to be support what Warp69 is telling us.
According to the designer, REAPER takes any ASIO driver format, but internally converts it to a 64-bit float value.
Even VDAT, though the most accurate, has a slight offset it seems. Probably some gain-staging.
Thanks for getting back to me on that. Just for the record I did not feel that you where ignoring me. It seemed that there was much more debate to come! I saw that this thread got called "thankless" in another place here in the forum and I have to say that I am glad for that. I am not trying to say that summing, or tiny losses due to conversion from floating point to integer maths is going to make or break a good song. This is not spirit of this thread when I started it. I just wanted to find out what the "correct" or "best" way to go about getting the most from my high end "in the box" studio. I love the fact that there is some serious math going on here. It is very informative even though I understand about 10% of it. Knowing weather or not it is best to use FLT ASIO drivers is important to me and has seemingly gone completely uncovered. It seems to me to be a very fundamental question that almost all users of the scope environment can benefit from, if even just by a few rounding errors. It is the point that there is a "more correct-more accurate" result that we can all get just by knowing more about what we own.Warp69 wrote:Im not trying to ignore you, I just dont know what to writeMike Goodwin wrote:Warp thank you for this very detailed post! I cant say that I completely understand the math mind you. Would you be willing to put this into a non mathematically sentence or two for me?![]()
You'll lose precision with conversion between 32bit float and 32bit int. Which format is the best? It depends
The human ear is more sensitive to changes in volume at low levels compared to high levels and that's exactly what floats represents - higher precision at low numbers compared to higher numbers. But math is not particually sensitive to any range, so when we use floats for coefficients in filters etc we have pretty good precision near zero, but much worse precision near 1 or above. And second, rounding errors and cancellations are inherent in float computations - so it's better to calculate (x+y)(x-y) instead of x^2 - y^2 in float.
my experiment shows that both 24bits and 32bit float have the same resolution after conversion, but the rounding is different.Knowing weather or not it is best to use FLT ASIO drivers is important to me and has seemingly gone completely uncovered. It seems to me to be a very fundamental question that almost all users of the scope environment can benefit from, if even just by a few rounding errors.