Help - Search - Members - Calendar
Full Version: Question about floating point
Hydrogenaudio Forums > Hydrogenaudio Forum > Scientific Discussion
bennetng
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...
benski
QUOTE(bennetng @ Sep 23 2006, 18:20) *

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.
Mike Giacomelli
QUOTE(bennetng @ Sep 23 2006, 15:20) *

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


Theres rounding error.

QUOTE(bennetng @ Sep 23 2006, 15:20) *

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.

QUOTE(bennetng @ Sep 23 2006, 15:20) *

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.
benski
QUOTE(Mike Giacomelli @ Sep 23 2006, 18:33) *

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


Also 80bit (Intel) and 128bit (PowerPC)
smile.gif
Mike Giacomelli
QUOTE(benski @ Sep 23 2006, 15:38) *

QUOTE(Mike Giacomelli @ Sep 23 2006, 18:33) *

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


Also 80bit (Intel) and 128bit (PowerPC)
smile.gif


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.
Kef
QUOTE(Mike Giacomelli @ Sep 24 2006, 00:51) *

QUOTE(benski @ Sep 23 2006, 15:38) *

QUOTE(Mike Giacomelli @ Sep 23 2006, 18:33) *

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


Also 80bit (Intel) and 128bit (PowerPC)
smile.gif


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
bennetng
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.
Axon
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.
benski
QUOTE(Axon @ Sep 23 2006, 21:07) *

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.
KikeG
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.
Woodinville
QUOTE(KikeG @ Sep 25 2006, 02:50) *

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.
bennetng
del
KikeG
QUOTE(Woodinville @ Sep 25 2006, 20:23) *

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.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.