Integer numbers have a fixed finite range: eg. a 16-bit integer can represent 65535 different discrete values. These integer number have the disadvantage that as the number they try and represent get smaller, the number of bits that the number uses to represent itself, falls. Therefore the SIGNIFICANT ERROR in representing a small analogue sample increases as the number gets smaller as the number can only be 1, 2, 3.... n.
On the other hand, the "32 bit float" system uses an exponential representation of numbers. This means, numbers can be represented with a precision that is related to their "size". It's like a percentage: let's say a number can be represented with a precision of 1% (just to simplify). As such, this precision allows us to represent values such as 1.00, 1.01, 1.02, ... and at another level, 100, 101, 102, etc. In other words, floating-point numbers differ from integer numbers in that they can scale themselves internally to be able to represent very big and very small numbers without losing significant detail.
The 32 bit floating point representation is useful for audio, because our ear work in the same way, with an exponential sensitivity. Eg. you need to change the linear level (imagine a waveform) from 20 to 40 to feel the same loudness increment than a change from 10 to 20. In other terms, a change from 1.00 to 1.01 is as much "hear-able" than a change from 100 to 101.
This is why the decibel (dB) scale has been invented: a linear scale to hide the exponential nature of the loudness, which is not easy to grasp for the mind.
With the 32 bit floating point representation, WaveLab has more than sufficient accuracy to represent the finest detail BUT still have a massive head room (someone once calculated 1500 dB headroom - but I think that gives false impression)
Hmm. Not so sure I'm buying this. Sure, when you convert from Int to Float you maintain all accuracy, but as soon as a single process is completed in the floating point domain and the resultant data has to be bit-adjusted to come out of the accumulator you lose "precision."
Hi Nika. This was never in dispute, if you are referring to the compromise of dithering of a 32 bit final WAV after all mastering and processing in the DAW back to 24 or 16bits for the CD/DVD.
Right at the end and only at the end is this compromise made.
Actually, right at the end is the only time there is any hope of maintaining the precision. At every intermediate process in a floating point system the accuracy is sacrificed as the result has to be reduced to fit within the confines of the allowable space of the mantissa. Preferrably there would be some sort of dither that could be added during this process, but dither cannot be properly added in a floating point environment. The result is that any precision that would occur after the 25th bit is lost and an artificial distortion is created as a result.
Quote:
I was arguing that all DAWS should sound the same, they have the same influence on the calcs.
Hmm. There are so many choices about how one generates coefficients, dither, etc. that unfortunately they may not sound the same (of course, aside from such issues as pan-law, where deliberate choices make differences that are separate from quality differences). Yes, ideally they SHOULD all sound the same, and depending on the process they MIGHT sound the same. I can easily see, however, how the choices and sacrifices made by the programmer can affect the results of a mix that might be more complex.
Quote:
Quote:
You may not lose much precision at a single sample from a single process, but the accumulated error from multiple samples builds up. Because there is no way to properly bit-reduce a floating point signal the errors (and then accumulated errors) build up undesireably.
Don't you mean multiple "calcs" not "samples". When are you saying this occurs within a DAW mastering process?
No, I meant samples, though I should have said "samples and calcs." The accumulated error from successive samples causes the distortion. We don't hear the error at a single sample. We hear the aggregate errors from multiple, successive samples. It is with this in mind that 32 bit floating point systems are less-than-desirable for various aspects of a DAW. One simply cannot maintain the precision below the 25th bit throughout multiple processes.
Quote:
Quote:
While they try to constantly maintain 25 bits of precision (in 32 bit float) anything that happened below the 25th bit is lost.
Surely this occurs only at dither time, right at the end.
Definitely not! The dither is the only chance where there is an opportunity to SAVE the information below the 25th bit! That is the purpose of the dither - essentially to bring forth the data represented below the remaining LSB so that upon truncation it is still represented. This simply cannot happen as floating point systems continually shed excess bits without preserving the information that they shed!
Quote:
Quote:
Sure, there is a constant 25 bits of instantaneous precision at any individual sample value, but the aggregate precision is much lower than that of fixed point systems. We humans hear more in terms of a windowed FFT analysis, wherein we analyze long stretches of audio at one time, so the instantaneous precision is not as important to us as the aggregate precision.
By aggregate precision, do you mean aggregate error of calcs?
No, not really. I mean that the error at one sample is insignificant to our ears. What is significant is the error from multiple samples. If we truncate excess bits (like a floating point system does after every calc) we create signal-dependent error. We effectively add a signal-dependent waveform to our signal, and any added component that is correlated to the waveform is, by definition, distortion. This distortion is the aggregate problem to which I was referring. We don't experience this in properly implemented fixed point systems because any error in the system is not signal-dependent. It is not correlated to the signal.
Hmm. I found that to be unhelpful and misleading. The following is an example:
Quote:
The 32 bit floating point representation is useful for audio, because our ear work in the same way, with an exponential sensitivity. Eg. you need to change the linear level (imagine a waveform) from 20 to 40 to feel the same loudness increment than a change from 10 to 20. In other terms, a change from 1.00 to 1.01 is as much "hear-able" than a change from 100 to 101.
This is why the decibel (dB) scale has been invented: a linear scale to hide the exponential nature of the loudness, which is not easy to grasp for the mind.
It is interesting that he would say that the floating point system is more akin to the way in which the ear works. In some respects this is true. The human ear experiences temporary threshold shift (TTS) and other issues which affect its instantaneous dynamic range capability, which gives it good parallel with floating point systems.
This argument, however, falls on its face when we discuss the maximum dynamic range of the ear, which is around 100-120dB. Since the range of a 24 bit fixed point system far exceeds the entire dynamic range of the ear, the sales pitch having to do with floating the instantaneous precision in order to make it more compatable with the ear's hearing is utterly rubbish.
Further, what he's really getting at is confusion between the exponentially-based precision of a floating point system and the exponential perception of human hearing. To try to explain in simple terms why these really cannot be mixed in the same thought process would be confusing for certain. It is simply in poor taste to say "the ear hears in exponents and therefore, by putting some exponents into our numerical nomenclature makes the stuff sound better." This is pure and utter bunk. I suppose it may be effective as a sales pitch but it certainly has no function in a discussion about the design or merits of different processing systems!
I hope that gives an adequate example of my concerns from that stultiloquoy.
Plenty. Can we quantify these errors with an example, to put it in perspective. Also I am still not understanding your terminology about samples and calculations.
Lets take two 24 bit waveforms A and B and add them togther (mix), concentrating on two corresponding "samples" at the same time point.
My impression of your argument is that you are referring to the error in the calculation of A+B as a percentage of A or B. Is this correct?
Are you saying that the maximum error in a 32 float calculation is epsilon or 1/2^24 and that this is greater than 24bit int precision?
Can you put some numbers to your example. This would help my understanding a lot.
The limit of my understanding is that a 24bit fixed int sample words and calcs have quantisation or amplitude errors inversely proportional (used loosely) to signal level, ie they are higher for lower amplitude signal.
Whereas a 32bit float has a 24bit mantissa which means its amplitude error is constant (2^24 steps) and independent of amplitude as the exponent is separated out.
So for adding small audio levels to big audio levels and everything in between, the 32 float is a more accurate and versatile and hence used in "all" DAW's, I think.
Nika, I know this is a simplification but I am at my level of incompetance now, after this, so can you fine tune or correct this statement perhaps?
Let's forget all of that for now and let me instead try to give an example:
Take a 100Hz sine wave and (mentally) record it at full scale in both a fixed point and a floating point system. Now, get a digital signal generator from inside the DAW and add a 1kHz sine wave at an amplitude that is equivalent to 26 bits back from full scale - say an amplitude of -156dB FS. What happens in each system?
If you look at an STFT (waterfall plot) in the floating point system you'll see that there is a 100Hz sine wave at an amplitude of FS and a strange, oscillating 1kHz sine wave that is modulated by the 100Hz sine wave, because the 1kHz only shows up when the 100Hz sine wave is in its rarefaction cycle. This modulation produces additional frequencies at 1100Hz and 900Hz (at minimum) and these will be clearly noticeable on your chart. These are distortion byproducts. You also see modulated noise that peaks at an amplitude of -150dB FS, but has its own distortion characteristics (and is thus not ACTUALLY noise) that oscillates along with the 100Hz sine wave.
Now do the same on the fixed point system. You see a 100Hz sine wave at FS. You see a noise floor at -141dB FS and you see a 1kHz sine wave at -156dB FS. That bloody sine wave is still there! You have preserved the integrity of the data, capturing "precision" all the way down to the 26th bit (and lower) though you have added a noise floor to the mix at -141dB FS. Everything about that lower level sine wave - the one that was far below the "capabilities" or "precision" of the system was maintained. No distortion was added. This is, as I was alluding, the more "precise" system, because the aggregate precision is greater (no added distortion, preservation of the original data when looked at over time).
This is why some DAWs actually ARE fixed point systems! Take, for example, the Sony Oxford console, which is fixed point throughout.
Nika, your example is very strange. I am recording 24bit audio, so I dunno why I would ever want to add a -156dB signal ever, ie one that is lower than the LSB of my 24 bit audio.
Quote:
Take a 100Hz sine wave and (mentally) record it at full scale in both a fixed point and a floating point system.
What bit depths for each?
Quote:
Now, get a digital signal generator from inside the DAW and add a 1kHz sine wave at an amplitude that is equivalent to 26 bits back from full scale - say an amplitude of -156dB FS.
Record it with what depth system? We are already down at -26bits?
Okay, I've gotta jump back in here. It may just be because I'm cranky right now, but I'm getting kinda fed up with this thread. Alright already!!!! We have some programmers/mathmeticians in the crowd. Hurray for you!! The fact is simple:
Several of us here believe that we can hear significant differences between DAWs. And regardless of any results that Dave and I may come out with, we will likely still hold to this belief. Prove or disprove it on paper all you want - who are you helping. For the love of God - the amount of time some of you have spent preparing your lengthy and well-thought-out responses, you could have made some beautiful music.
Let's get back to the important stuff and let's face it - who gives a flying rat's ass how one DAW sounds compared to another as long as you are happy with yours, fine!
Sorry for the rant. I'm going to go drink some burboun now and get ready for 3 friggin recordings in one friggin day!
I asked on the Samplitude forum about this question and the developers came back with an answer that to a certain extent both sides are right. Yes, things should sum perfectly, but there sometimes is a bit of "voodo" involved in the way that the DAWs work...
Anyways, I think this thread has pretty much run its course. The arguments are turning circular and neither side is budging.
If there is a truly useful post contact me and I'll unlock it, but I think it is time to end this one here...
--Ben
_________________ Benjamin Maas
Acoustic Music Forum Moderator
_____________________________
Fifth Circle Audio
Los Angeles, CA
www.fifthcircle.com
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum