Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Question about floating point (Read 9868 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Question about floating point

For example, in Adobe Audition...

I noticed that in 32-bit float processing mode, audio samples can be higher than 0dBFS without clipping, and if I decrease the volume by 180dB then increase by 180dB, I cannot distinguish the difference before and after processing but I know that they ARE different after binary comparison. So my question is:

1. How many extra volume above 0dBFS is allowed in floating point audio?

2. Is that changing volume is still lossy, even at floating point? If yes... next question

3. If I want to make a file sounds crap (to most people) in 32-bit float processing mode, how many times of volume changing are needed? Is it dependent to the wave editor being used? Will there be any difference if I change the volume in +/-10dB interval and +/-100dB interval?

4. Why there is no 8/16/24bit float audio format?

5. To my knowledge, no soundcard/audio interface supports floating point format in playback and recording, why?

Thanks for reading and sorry for my English...

Question about floating point

Reply #1
1. How many extra volume above 0dBFS is allowed in floating point audio?

A huge amount

Quote
2. Is that changing volume is still lossy, even at floating point? If yes... next question

Yes, because your precision is still limited.

Quote
3. If I want to make a file sounds crap (to most people) in 32-bit float processing mode, how many times of volume changing are needed? Is it dependent to the wave editor being used? Will there be any difference if I change the volume in +/-10dB interval and +/-100dB interval?

It should fair better than PCM, because floating point maintains the same precision at all exponent levels

Quote
4. Why there is no 8/16/24bit float audio format?

Because that's all that IEEE-754 specifies.  However, you lose about 8bits of precision to overhead and headroom, when compared to PCM, so 8 and 16bit floating point modes would be a bit useless.

Quote
5. To my knowledge, no soundcard/audio interface supports floating point format in playback and recording, why?

ASIO supports floating point natively.  What the soundcard does underneath is left up to the implementation.

Question about floating point

Reply #2
2. Is that changing volume is still lossy, even at floating point? If yes... next question


Theres rounding error.

4. Why there is no 8/16/24bit float audio format?


Because x86 CPUs only support 32 and 64 bit, so other modes are not very easy to do.

5. To my knowledge, no soundcard/audio interface supports floating point format in playback and recording, why?


24 bit integer is already higher precision then any hardware device can actually output at (well output anything other then thermal noise).

I don't really know much about fp audio, just CPUs, so i'll leave the rest to other people.


Question about floating point

Reply #4

Because x86 CPUs only support 32 and 64 bit, so other modes are not very easy to do.


Also 80bit (Intel) and 128bit (PowerPC)



I don't think 128 bit fp modes are supported in PPC, I think theres just an option to do 128 bit opps on vectors of 4 32 bit SP values (the same is also supported in SSE, as well as vectors of 2 64 bit doubles).  I could be wrong though, I haven't followed PPC very closely.

Question about floating point

Reply #5


Because x86 CPUs only support 32 and 64 bit, so other modes are not very easy to do.


Also 80bit (Intel) and 128bit (PowerPC)



I don't think 128 bit fp modes are supported in PPC, I think theres just an option to do 128 bit opps on vectors of 4 32 bit SP values (the same is also supported in SSE, as well as vectors of 2 64 bit doubles).  I could be wrong though, I haven't followed PPC very closely.


You are correct. PPC (Altivec/VMX) can do 4 * 32 bit FP. SSE can do the same. SSE2 can do 2 * 64 bit FP

/Kef

Question about floating point

Reply #6
I would like to see support of fp in ASIO. It is useful for internal recording purposes such as software samplers.

Thanks for the replies. Learned something about fp.

Question about floating point

Reply #7
ASIO, IIRC, is meant as an extremely direct access method to the bare hardware. Floating point I/O on sound cards is quite rare. Anything that would require software floating-point to integer conversion would be bloody painful and might affect latency numbers.

 

Question about floating point

Reply #8
ASIO, IIRC, is meant as an extremely direct access method to the bare hardware. Floating point I/O on sound cards is quite rare. Anything that would require software floating-point to integer conversion would be bloody painful and might affect latency numbers.


ASIO definitely supports floating point audio, both in 32bit and 64bit precisions.  However, the ASIO driver for most sound cards will probably just refuse the format, or possibly convert it on the fly.

ASIO is not direct access to the bare hardware.  It's simply an API<->driver layer that avoids the OS audio stack, with its associated latency and quality problems.

Question about floating point

Reply #9
Changing volume in floating point is lossy, but so little lossy that in practice it is not.
As to floating point support in hardware, that would be useless. As some have said, 24-bit is already more that can be achieved in practice. Best DACs have a true resolution of around 21 bit, due lo limitations imposed by real-world electronics.

Question about floating point

Reply #10
Changing volume in floating point is lossy, but so little lossy that in practice it is not.


Well, if you change it by exactly a power of 2 ...

In general a touch of added noise 24 bits down should not be much of an issue unless you're somebody who demands "bit exact' data.

Consider 24 bits == 144dB. 

Since the noise level of the atmosphere is about 6dB SPL (white noise, 20 to 20k), that gives you a peak level of 150dB, which is way over what most stereo electronics (except for competition car stereos not intended for human ears) can reproduce.

Of course, as somebody else said, there are no cards out there that really give close to 24 real bits, either.

Just consider the impedences and such required.
-----
J. D. (jj) Johnston

Question about floating point

Reply #11
Well, if you change it by exactly a power of 2 ...

In general a touch of added noise 24 bits down should not be much of an issue unless you're somebody who demands "bit exact' data.

I wasn't thinking on that particular case but more on general editing.