[linux-audio-dev] XAP spec - early scribbles

Steve Harris S.W.Harris at ecs.soton.ac.uk
Thu Feb 6 05:46:00 UTC 2003


On Wed, Feb 05, 2003 at 02:41:44 -0800, Tim Hockin wrote:
> > >   All XAP audio data is processed in 32-bit floating point form. 
> > > Values are normalized between -1.0 and 1.0, with 0.0 being silence.
> > 
> > I think "normalized" is the wrong term here, since it can't be more 
> > than a 0 dB reference. There's no useful way to actually *normalize* 
> > audio data.
> 
> I've always heard it called normailzed, and it jives with what I know.  It
> CAN be more than 0dB - that is one big plus of float data.  You can way
> exceed 0dB. If you don't lower it before the final output, you'll get a
> digital clip, but you can run your whole chain REALLY hot, then gain reduce
> before output, and still be OK.

"Normalised floating point" is a well know term, but normalised between
-1.0 and 1.0 is wrong.
 
> > Nice. Can be used for "optimized silence", of course - which leads to 
> > a question: How about *outputs*? Plugins that keep track of whether 
> > or not they're actually generating audio would need a way to mark 
> > each output as "audible" or "silent", before returning from each 
> > process/run() call.
> 
> Yes - we have a few options here.  This is something that can save MASSIVE
> CPU, and is really needed.

This souds like a really bad idea, I think the intention of the plugin
reporting its RT60 (or whatever) tail size is for post roll, not silence
detection. Silence detection is pretty pointless in RT systems, and likly
to a huge source of bugs.

You cant use the "free" cycles, because youre never sure when the plugin
is going to wake up and start chewing CPU again, and in any case you dont
know how much it was really using.

Ontop of that the RT60 time is only a guideline, depending on the
processing graph it may be totally inapropraite to assert silence after
the nominal decay time.
 
> If a chain of plugins starts with a voiced instrument, we have a clue when
> there is nothing coming down the chain (instruments need to confirm it, of
> course).  Each plugin in the chain might eventually be silent, with silent
> input.  Silence needs no processing.

"Silence" is relative. A reverb will onyl decay to mathematic silence
after a really long time, but that isnt the intention of this hint IMNSHO.

- Steve 



More information about the Linux-audio-dev mailing list