[linux-audio-dev] Fixed vs. floating point

Jens M Andreasen jens.andreasen at chello.se
Sat Oct 15 06:34:10 UTC 2005


On Fri, 2005-10-14 at 21:00 +0200, cpolymeris at gmx.net wrote:

> Then I also fail to see why it's bad for overflows to ocurr in fixed point.
> Those signals (above 0dB FS) would clip on the hardware anyway, and are
> expected to do so, since they were either badly recorded or amplified.
> 

In a hardware scenario you would typically have a chain of; gain
(16bit), channel-fader, group-fader, master-fader (16bit)

Once sorted out, you will multiply all the virtual faders before
applying the result to the signal.

So far all is well. There is only a single fixed mutiply of the signal.

In the hardware scenario we also have an "insert" jack for external fx.
The fx-chain will have its own gain and out levels for each element in
the chain, and this is where the problem arises. There is no way for us
to know the internals of the arbitrary plug-ins.

Floats to the rescue: By converting the signal from int to float, we
will gain a seemingly *almost infinite dynamic range*. Is this important
then? Yes, because the intermediate results in the chain can very easily
be out of bounds, while the final result is well-behaved and within
bounds.

Practical examples? Oh yes, electric guitarists will chain just about as
much as they can afford (only joking ...)

But yes, I do quite a few "room in a room" simulations where one reverb
is feeding the next reverb. It is surprising how the buildup of the
first can resonate and distort the second.


mvh // Jens M Andreasen



> Greetings, Dimitri
> 
-- 




More information about the Linux-audio-dev mailing list