| -----Original Message-----
From: Ed Hall
To: Csound
Date: Sunday, June 06, 1999 5:37 PM
Subject: Re: Higher numerical precission in Csound
>Michael Gogins wrote:
>> It is simply not true that Csound's internal precision equals or exceeds
>> that of professional audio gear. This may be true of some
semi-professional
>> gear, but it is not at all true of really high-end gear.
>
>Great! So if you believe that 24-bit, 96Ks/s audio is essential and that
>every LSB is sacred, compile Csound with doubles, set sr=96000 and
kr=96000,
>output in floats or 32-bit ints, and be happy. But why force this on the
>rest of us?
By asking for a compilation flag, I am not forcing anything on anybody. I am
asking that I and others like me be given the ability to make sounds at
least as precisely as pro gear can. Others will remain free to sacrifice
sound quality, perhaps a degree of sound quality that they are not using,
for working speed.
>I can easily see why audio gear using fixed-point computation would need
>at least 48-bit internal data to avoid overload. (16-bit level X 24-bit
>sample is 40 bits; summing 64 channels of these would need 8 more bits
>of overhead; scale only on output.) Floating point has some real
>advantages--a 32-bit float has 254 bits of dynamic range. And given how
>much DSP power a few dollars buys these days, if the chip your mixer is
>built on supports 64-bit floating point, why not use it? In a mixing
application, you have cycles to burn. It looks good on the spec sheet,
>anyway. But is it audibly better than 32-bit floating point? IMHO, no.
For Studer, at any rate, the reason for more bits is not to avoid overload -
it's to avoid round-off errors (documentation for 950 mixer).
Some of the pro grear chips are floating point, some are fixed point; some
are in-house custom chips, some are Motorola, TI, or ADI.
>The 96dB dynamic range of 16-bit samples is arguably
>too small, but that's different than saying that 16-bit resolution is too
>small. There is much less evidence of the latter, and the arguments
>I've heard for adding more than a bit or two of resolution have amounted
>to hand-waving, at best.
I don't think the pro audio business is basing its investment and
engineering decisions on hand-waving. 24 bits at 96 KHz is the emerging pro
standard. It is also the emerging audiophile digital audio standard.
>> Assume
>> that the digital audio samples coming into a system are 32 bits. Only a
few
>> arithmetic operations are required to introduce audible noise and
blurring
>> into the signal.
>
>Where in the (real) world are you going to get 32-bit samples? Even pro
>A/D's only give you 20 bits or so above noise floor (120dB s/n ratio).
I am hoping to get 32 bit samples that mean something out of Csound. As a
musician, I look forward to being able to compute sounds that even the best
pro gear can't supply. And if my suggestion were followed, I would be able
to do it.
>> If, however, 64 or 80 bit samples are used, dozens of
>> operations can be performed without the noise floor cutting into the 32
bits
>> of the input signal.
>
>That's a 192dB noise floor you're talking about, there.
>
>> As a result, there will be no audible degradation of
>> the signal by round-off errors. Even if only 24 bits of precision are
coming
>> into the system, it will only take a dozen or so operations to raise the
>> noise floor.
>
>Well, actually, only one, since 32-bit floats have 24-bit mantissas. But
>24 bits represents a 144dB noise floor. Error estimation for floating-
>point calculation is notoriously difficult (dissertations are written on
>it), but in the cases of scaling (multiplication) and mixing (addition),
>we gain about 1/2 LSB of noise for each operation. Thus we've lost a bit
>less than 6 bits (log2 (100 * 1/2)) after 100 operations. Our noise floor
>is now around 110dB--for any musical purpose, still inaudible; it's way
below
>the 96dB maximum of a CD (a figure rarely achieved in practice).
It is well above the audible maximum of a 24 x 96 audiophile DVD.
>> If Csound were to follow standard professional audio engineering
practice,
>> it would support its 32 bit inputs and outputs with 64 or 80 bit internal
>> samples.
>
>"Support," yes. Mandate, no.
Fine - all I need is support.
|