[pulseaudio-discuss] [PATCH] add module-virtual-surround-sink

Niels Ole Salscheider niels_ole at salscheider-online.de
Sun Jan 22 05:32:04 PST 2012


Hello,

> OK, so in the future we need a different algorithm for desktop speakers.
> Something like "find out stereo sound that, when convolved with the
> HRIR and summed for each ear, produces the same result as the original
> 5.1 sound convolved with the appropriate HRIR", but at high-enough
> frequencies only.

That is possible with crosstalk cancellation. It requires knowledge of the 
transfer functions from each speaker to each ear, though. I have no idea how 
well it would work if we just estimate the transfer functions but there seem 
to be commercial products that do so.

> As for the complexity - yes, it can be reduced substantially, because
> you use the simplest possible implementation of convolution with a
> rather long filter. Please try to use FFT-based convolution and
> benchmark.
> 
> Or, even better, try to approximate one of the available HRIRs with a
> combination of an IIR filter of some low (4-6) order and a
> fixed-per-channel delay, and hard-code that. As there is no scientific
> way of designing IIR filters with arbitrary impulse response yet, the
> simplest possible way of doing such approximation is to autogenerate
> random IIR filters of a given order, compare their response with the
> desired one, and leave the whole thing running for a day or so until it
> finds something suitable.

Sure, my code is O(n^2) while FFT is O(n log n) but it is somewhat simpler and 
has less overhead.
I will try your proposed alternatives when I find the time to do so (exams are 
coming up).

Regards,

Ole
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20120122/e9b893d5/attachment.pgp>


More information about the pulseaudio-discuss mailing list