denormal floats (was Re: [linux-audio-dev] XAP spec - early scribbles)

Simon Jenkins sjenkins at blueyonder.co.uk
Thu Feb 6 18:34:01 UTC 2003


David Olofson wrote:

>On Thursday 06 February 2003 16.28, Steve Harris wrote:
>[...]
>  
>
>>#define FLUSH_TO_ZERO(fv) (((*(unsigned
>>int*)&(fv))&0x7f800000)==0)?0.0f:(fv) I think it came from the
>>music-dsp list.
>>    
>>
>
>There's a conditional in there, though.
>
>Another method is to add noise or some other signal (beep at Nyqvist) 
>with an amplitude a few hundred dB or more below the 0 dB level of 
>audio data.
>
(IIRC:)
If a plugin has got denormals coming out of its outputs, its pretty
certain that its got them circulating around an internal feedback
loop also, since thats where denormals generally come from.

Killing denormals at the plugin output will stop them propogating
through subsequent plugins, but do nothing to stop them propogating
around inside the plugin that's generating them. In fact a plugin can
have denormals circulating around inside it *without* producing
denormals at its output.

(IMHO:)
Denormals need to be detected and killed in the feedback paths that
generate them. These paths are inside the plugins, not between them,
so its something the plugin author has got to get right, not something
the API/host can effectively deal with.

Simon Jenkins
(Bristol, UK)





More information about the Linux-audio-dev mailing list