Subject: Re: [linux-audio-dev] real time plugins
From: David Olofson (david_AT_gardena.net)
Date: Thu Mar 16 2000 - 01:39:01 EST
On Wed, 15 Mar 2000, John S. Rhoades wrote:
> I've been following the discussion recently but I am not up to speed, so my
> point may have been already discussed.
>
> Filter plugins that work via convolution typically need some extra input
> samples before and after the samples they generate/replace. In some
> applications, this can be a LOT of samples, see below. Filters may also
> (unless designed to avoid it) introduce time shifts. Some filters have the
> express purpose of time shifting, e.g., time-aligning data from different
> microphones. The question will arise, where does the filter get these extra
> samples? It cannot "invent" them or there will be audible artifacts.
>
> An extreme example is some work I'm doing with digital room correction. I
> use an 8192 tap FIR convolution filter. This filter needs 4096 inputs before
> and after the output time to generate an output sample. I NEED this number
> of coefficents to get the frequency resolution (5 Hz) that is required to
> supress typical room resonances below 300 Hz. The only way I know to run
> such a big filter in real time on a PC is using FFT-based convolution, which
> requires TWICE the number of input samples, i.e., 16384 samples are
> processed in each set, with an overlap of 8192 samples. Can (or should)
> plugins be able to handle this?
Yes, but it's usually done through internal buffering in the plugin.
I would like to see a more efficient solution, but it might end up in
very complex host implementations.
Anyway, if it's done the usual way, by internal buffering, it's very
obvious that there will be a delay. This delay should be something
the plugin can tell a host about, so that the host can do the
compensation required to make the system behave nicely, ie not
introducing "random" latencies everywhere.
//David
.- M u C o S --------------------------------. .- David Olofson ------.
| A Free/Open Multimedia | | Audio Hacker |
| Plugin and Integration Standard | | Linux Advocate |
`------------> http://www.linuxdj.com/mucos -' | Open Source Advocate |
.- A u d i a l i t y ------------------------. | Singer |
| Rock Solid Low Latency Signal Processing | | Songwriter |
`---> http://www.angelfire.com/or/audiality -' `-> david_AT_linuxdj.com -'
This archive was generated by hypermail 2b28 : Thu Mar 16 2000 - 08:56:50 EST