As Tanu says, you might want to take a look at my work. I already implemented convolution but I do it with FFTs (it's the same thing, just faster). I also assume one global filter for all channels. The sink as I've said before is already quite usable but is actively trying to keep up with mainline to fix various issues left behind. Btw, while I named my sink "equalizer" its really more of just a convolver and so it might be the case to where we should put in the extra bit of work and just make it a module-fir-filter-sink or some such. The add-on work is horrendous, I just haven't had a reason for it myself. git clone git://gitorious.org/pulseaudio-equalizer/pulseaudio-equalizer.git git clone git://gitorious.org/qpaeq/qpaeq.git Jason On 08/14/2009 10:14 PM, Neil Wilson wrote: > Hi, > > I've been spending a bit of time playing with Digital Room Correction > and I'm trying to work out the best place/way of including the > convolver filter into the audio stream. > > Obviously I can hack this in and make it work in one situation, but I > want a more elegant design that will work in a number of scenarios: > > - locally with one sound card. > - locally with multiple sound outputs (with a different filter > configuration for each output). > - filter running locally talking to a dumb device output over the > network (Apple Airport for example). > - talking to another pulseaudio soundserver on the network. > > with a view to making this relatively easy to use for the average > 'consumer'. That suggests Pulseaudio rather than a Jack setup. > > I'm not sure front end solutions (in the media player or Gstreamer) > are appropriate since it would stop, say, applications like Spotify > under Wine working properly (incidentally I've packaged Wine with > PulseAudio drivers for Ubuntu - > http://www.3spoken.co.uk/2009/08/making-wine-sound-work-with-pulseaudio.html). > > Is there a way with PulseAudio to include the convolver in the audio > stream or should I be looking at patching the filter in at the ALSA > layer? Am I looking at this the right way? What would you suggest as > the best design approach here? > > All suggestions appreciated. > > TIA >