DD4WH Convolution Filter Audio Object- truncating impulse responses

Status
Not open for further replies.

dirkenstein

Active member
Hi,

I managed to convert DD4WH's partitioned convolution filter code into an AudioObject- It seems to use more CPU that way but it does work.

It uses a _lot_ of memory with large parameter files but that's inevitable given the algorithm. Is it worth trying use PSRAM to store the arrays- would the speed be adequate if it paged parts of the arrays in and out? I doubt it, and i suspect the algorithm would hit CPU limits before the paging would have significant capacity benefits anyway.

I was hoping to try converting some convolution reverb impulse response files for testing but I don't think we can support the number of parameters these contain. Can you just truncate the files to fewer parameters? Will that truncate the reverb tails or add other unpredictable/nasty artefacts?

Regards,

Dirk
 
Can you share some specifics wrt cpu and memory?

My understanding is that as you use less taps, you lose resolution in the low frequencies. Depends very much on what you want to do, but I use 8192 taps.

On a T4, Frank reports "uses 537kbytes of RAM and has 12.8% of processor load with a 8192 tap FIR filter."
 
Last edited:
32% with a 8192-tap filter.

The memory usage is hard to estimate, at least 300k. The issue is that allocating from RAM0 requires me to have a 384K static block of memory preallocated as you can't use malloc/free in that RAM bank.

92% with a 24500-tap filter. Any more and it runs out of memory.

And as I expected, truncating the IR for a reverb IR truncates the reverb tails.

I don't know why the CPU usage is higher but I am not using Frank's CPU reporter but the built -in audio library CPU measurements (and I also have 2 mixers as well as audio in/out).

Dirk
 
Status
Not open for further replies.
Back
Top