ΣSigmaStudio Ask AI Русский Log in

Convolution reverb on SigmaDSP

SigmaDSP & SigmaStudio kevinkleine Nov 24, 2014 00:00 4 replies Original on forum ↗
Subscribe
kevinkleine Question
Nov 24, 2014 00:00

Hi there!

Does anyone know whether it is possible to get convolution reverbs working on a SigmaDSP chip? I need to choose an impulse response from a list which should be used for the convolution in real-time. If this is possible does anyone know the limitations on the length of the impulse response?

Thanks in advance for you time and efforts!

Kevin

convolution

reverb

SigmaDSP

impulse response

JohnTo Reply
Nov 24, 2014 00:00

Hi Kevin,

I would imagine this could be easily implemented on the ADAU145x for fairly long impulse responses. Either as a rather large sample-by-sample FIR filter, or using some sort of Block Convolution/Overlap & Add Method with the FFT block (block processing).

The limitation on the filter impulse response length would be the amount of available internal DM0 or DM1 memory, which is:

20K words per DM block for the ADAU1452

8K words per DM block for the ADAU1451

4K words per DM block for the ADAU1450

-JT

kevinkleine Reply
Nov 24, 2014 00:00

Hi JohnTo,

Thanks for your answer! "20K words per DM block".. does one word correspond to one audio sample?

Gr. Kevin

JohnTo Reply
Nov 24, 2014 00:00

Hi Kevin,

1 word in memory would correspond with 1 24-bit audio sample. So 20,000 memory words would be less than 1/2 second (at 48 kHz sample rate) if you were only doing FIR filtering and nothing else.

Thinking about this some more, you probably might want some reverb responses that is a few seconds long. If so, then a higher end processor like a SHARC DSP with fast external DDR SDRAM memory would be preferable. For an architecture like a Sigma300, realistic artificial reverberation could instead be achieved with IIR first and second order all pass/comb/lattice filters, etc.

Still, the ADAU145x can offer the ability to execute a fairly large FIR filter. I just realized the FIR block allows a maximum 10K per filter. Four FIR filter taps can be accessed in a single instruction cycle with the quad 32-bit multiplier, which means the 10K FIR filter would execute in 2500 cycles. I would imagine you can combine parts of a larger response using multiple FIR filters.

I just did a quick test of a 10K FIR filter and got a cycle count of 2565 total cycles including the filter and audio framework, or 42% of the 294 MHz processor bandwidth at 48 kHz fs.

-JT

ff8e55963618aa4b62038ebe32542522.png
ff8e55963618aa4b62038ebe32542522.png
ff8e55963618aa4b62038ebe32542522.png-620x229.png
ff8e55963618aa4b62038ebe32542522.png-620x229.png
EZAdministrator Reply
Aug 2, 2018 00:00

This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

Thank you,
EZ Admin