[linux-audio-dev] [ann] unmatched - a LADSPA amp tone

Tim Goetze tim at quitte.de
Tue Oct 22 07:08:00 UTC 2002


Steve Harris wrote:

>> a quick test (%s/double/float/g) shows the cpu usage doubling,
>> but i'm unsure what may cause this huge performance drop.
>
>Lets just put it down to chache issues and ignore it ;)

can't ... ;) here's the output of gcc -O2 -S. this is what is
added for every coefficient in the float version wrt doubles:
  ...
  fstps -4(%ebp)
  flds -4(%ebp)
  ...
afaict, it truncates the algorithm's accumulator to float.
if we change the constant coefficients to come as floats
(appended 'f') this truncation is omitted, and the cpu cost
is the same (maybe a tad more) as for doubles. i conclude 
that constant real values really need the 'f' if operating 
with floats in gcc, and that there's little reason to use
them in DSP on x87 anyway if memory effects aren't essential. 

>> doubles should, on average, mean we seldom hit the denormal number
>> bounds, or at least less frequently than with floats. i also expect
>> doubles to be beneficial to the filter stability by minimizing
>> round-off error, though i may be wrong here. lastly, x87 uses 80 bits
>
>Yes, though can manually truncate the floats, and floats will give half
>the cache footprint, so play better with other software.  I dont really
>have a feel for when doubles are neccesary for filters yet.

on average, the branched truncate costs more in this filter 
than simply ignoring denormals. for this particular filter,
there doesn't seem to be a good reason to switch to floats 
at least on the system i use. if i was pressed for a rule,
i'd say use doubles unless you need to store lots of them.

>Yes, you can always pep things up with a nonlinear effect of somekind
>before the cabinet+speaker sim. In FFT convolvers you take several
>impulses at different amplitudes and shift between them.

currently, i'm looking at what a sine wave looks like after
it's been handled by a good distortion stomp box. the way it 
shapes the wave form seems easy to grasp, but as usual, i
am hesitant to implement what i don't understand fully ...

>I wouldn't worry too much aboout being very close the the impulse, the're
>only for a particular input amplitude and I can't remember when they came
>from so may not be fantastic.

the recording seems to be of decent quality, and the iir
response irons away most of the noise anyway. but the most
important thing is i like the sound of it, which i do a lot. 
i've tried about every of your impulses and, would you 
believe it, liked the fenders the least. i regularly play 
a fender super 60, for ten years or so. :) got to take 
a response from it someday myself.

>I'm wondering if this technique can be used for reverbs too - generate a
>purely "white" synthetic reverb tail, and apply an IIR the aproximate
>shape of the rooms impulse to it to make it sound more real...

very interesting thought indeed. do you have a good response
for trying this? (sorry, "steve's flat" doesn't qualify,
"albert hall" is more like it ;)

tim





More information about the Linux-audio-dev mailing list