[LAU] Long latencies with JConvolver or BruteFIR

Fons Adriaensen fons at linuxaudio.org
Mon Oct 7 21:26:51 CEST 2019


On Mon, Oct 07, 2019 at 11:42:33AM -0700, AKC360 wrote:

> Fons Adriaensen-3 wrote
>
> > A symmetric FIR of 8192 samples would have a delay
> > of 4096 samples, or 85.333 ms...
> 
> I am sorry yes I think I have confused the terms being used. I sent an
> impulse through JConvolver with the oscilloscope CH1 being connected to the
> signal generators Jack output. CH2 was connected to the Jack Output of
> Jconvolver. I measeured the time difference on the scope between the two
> impulses.
> 
> So I guess I am measuring jack latency and the filter delay.

With the minimum partition size equal to the Jack period there is no
additional latency, what you measure is just the filter delay.

> I thought with partitioned convolution the filter delay would be
> lowered from the traditional delay(85mS)?

No, the delay is a property of the filter, not of how it is implemented.
You can't have linear phase without the delay... But you could probably
reduce the filter size to 4096. It may affect the Sub crossover a bit,
but I don't think you'd hear the difference.

> Thanks for your help with this, my speakers sound so much better since
> going active and linear phase!

No surprise :-)

Hints: set the max size to your filter lenght, this will use less
memory. Also you could set the density to 0.5. 

The higher frequency filters probably are much shorter than 8192
samples, with most energy concentrated around sample 4096. You
could leave out the (near) zeros at the start and end, like this:

Replace 

/impulse/read    1   1    1     0       0       0     1    High.wav

by 

/impulse/read    1   1    1  2048     2048    4096    1    High.wav

or 

/impulse/read    1   1    1  3072     3072    2048    1    High.wav

keeping only the central 4096 or 2048 samples.

This may reduce the CPU load (not that it seems to be a problem).

Ciao,

-- 
FA



More information about the Linux-audio-user mailing list