[sdiy] Hardware convolution box?
rsdio at audiobanshee.com
rsdio at audiobanshee.com
Tue Feb 7 04:38:38 CET 2017
Hi guy,
A DSP chip is going to be hundreds of times more efficient than a generic ARM processor (even the ones with a MAC instruction). The reason DSP beats a generic CPU is that the instructions are optimized for signal processing, and often a single-cycle instruction can handle several different operations in parallel that might be needed. A generic CPU will need to execute several instructions to implement the same calculations.
Good options are the Texas Instruments TMS320 family, the Analog Devices SHARC family, and the Motorola/freescale/NXP 56000 DSP family. It's a steep learning curve, though, because the best code is often written in assembly to take advantage of the unique instructions of each family of DSP.
You'll need to select a chip that can address a large amount of memory, because convolution requires more memory than the average DSP operation. Not many chips will have a lot of on-board memory, so be sure to look for chips that have an external memory bus that can address the samples in your impulse response.
Texas Instruments has boards with audio inputs and outputs for $50 and up that you could get started on. But you'll have to check the memory provided and the clock rate to be sure.
Brian Willoughby
Sound Consulting
On Feb 6, 2017, at 6:08 PM, cheater00 cheater00 <cheater00 at gmail.com> wrote:
> does anyone make an inexpensive hardware convolution box with stereo
> in/out? I need a couple secs of response at 48 kHz.
>
> Has anyone considered using one of those inexpensive arm based
> mini-pcs for this purpose?
>
> What sort of processing power does one need for convolution? I'm not
> sure how to calculate this. My calculations were: to apply a
> two-second IR at 48 kHz onto incoming 48 kHz signal, you need, per
> channel, 2*48000 multiplications for each sample being put out. You do
> this 48000 times per second. So in the end for each channel you need
> 2*48000*48000 multiplications per second, or 4608 MIPS per channel.
> Then you need to do the additions as well, and then account for the
> other channel. That's a whole lot. Am I missing something?
>
More information about the Synth-diy
mailing list