Re: [linux-audio-dev] One API for everything (first draft)

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] One API for everything (first draft)
From: Tom Pincince (stillone_AT_snowcrest.net)
Date: Fri Jun 01 2001 - 20:42:29 EEST


> > >I can think of no reason to deal with samples in any format other than
> > >floats. Previously the use of MMX might have been compelling, but now all
> >
> > as long as we include the possibilty of "float" having a compile-time
> > switch to mean either 32 or 64 bit floats, I agree. but only compile
> > time. there should be no support for any format other than whatever
> > "float" format was chosen at compile time.
>
>
> This I don't like. If there are situations where 64 bit floats are
> really needed in inter-app communication, then it should be available
> for everyone, not just compiler-enabled people, so to speak. The
> audio pro who wants extra precision isn't necessarily a skilled
> computer user.

Here is a situation that I ran into while recording some ambient music.
I don't know if it applies, but it might.

I set up a 4 second delay loop with the feedback set just below unity,
so that it took about 20 minutes for a sound to fade to silence. This
means that every sound went through the loop 300 times. I recorded
about an hour of this and while listening to the playback, I noticed
that there was a significant amount of noise building up, becoming
clearly audible at around the 15 minute mark and continuing to build
through the end of the piece. I decided not to use the piece because of
this noise. I decided to investigate. First I put a noise gate before
the delay, digitally connected, to eliminate any analog noise entering
the loop while I wasn't playing. This did not reduce the noise, but it
did change the nature of the noise from a soft hiss to harsh digital
grunge. My guess is that 300 iterations through the loop allows
rounding errors to accumulate to an audible level. It seemed to me that
the quantization noise caused by these rounding errors was taking on a
life of its own, building up faster than the feedback loop's attenuation
was bringing it down. The device was an ensoniq dp4, which uses 16 bit
a/d and 24 bit integer processing (I think). I don't know how a 32 bit
float delay would perform. In any case this experience allowed me to
imagine that there may be times where lots of bits are useful for the
accumulation of errors, that would be truncated before anyone had to
listen to it. Of course I also imagine that such a plugin could receive
32 bit words, convert to 64 internally for its loop, then convert back
to 32 for output, so inter-app would still be 32 bit. Oh well, the
music was quite good and I look forward to doing it again with a system
that provides an acceptable noise floor.

Tom


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Jun 01 2001 - 22:13:21 EEST