[sdiy] Hardware convolution box?
rsdio at audiobanshee.com
rsdio at audiobanshee.com
Thu Feb 9 20:29:46 CET 2017
Based on your survey, I'd recommend the Analog Devices board, even though I usually lean towards TMS320. The TMS320 family is huge, including both fixed-point and floating-point, low-power and high-speed, old and new designs, etc. Some of the TMS320 boards you listed are really geared more towards motor control than audio, which is why they might be underpowered for long impulse response convolution. I know that the AD SHARC family is also large, and they're very popular, but I am less familiar with the options.
Don't forget to look at the chip manufacturer as a direct source for these boards. I always buy directly from Texas Instruments because Digi-Key tends to have a markup. Outside the US, maybe it's a different story due to international availability.
I'd recommend something like the 1MB 800 MMAC board and not worry about external RAM. 1MB seems like plenty. I'd also recommend trying to implement both the time domain convolution and the frequency domain version. There are ways to reduce the latency of the frequency domain approach, and at least it would allow for longer impulse responses to be supported. For IRs that are short enough, the time domain approach would work. I've also seen papers on combining the two, since LTI techniques can be run in parallel and summed.
As for taking pairs of 16-bit samples to speed things up, be aware that not all instructions can work that way. I think that most DSPs can do a few simple operations on value pairs, but the most complex DSP instructions can only handle full samples. DSP architectures have internal registers that are much larger than the sample size, like 56-bit or higher. If you think about all of the potential overflow when adding thousands of samples from an impulse response, you can see why such large registers are needed. When working in that model, its not possible to handle the overflow from two samples that are combined in a single 32-bit input value.
Finally, I think that nobody has made something like this because the user interface would be rather difficult. It's a bit of a power-user effect. On that note, some sort of SD card might be useful, so I can see why you're looking into that. However, perhaps just a custom USB class device would be enough of an interface to allow downloading impulse responses to the device. At a minimum, you'll need a large Flash to store the current impulse response, or some way to partition the program Flash to set aside room for the data. The AD board with USB host mode could feasibly read directly from a USB memory stick or Flash drive.
Brian
On Feb 6, 2017, at 9:20 PM, cheater00 cheater00 <cheater00 at gmail.com> wrote:
> Brian, $50 is a steal. I've had a look at Digikey.
>
> This TI board is £24. It has ~150 KB on-chip RAM, but it has an
> integrated SDRAM interface.
> http://www.digikey.co.uk/product-detail/en/texas-instruments/LAUNCHXL-F28377S/296-42484-ND/5404239
>
>
> This TI board is £40. It has ~384 KB on-chip RAM and an integrated
> SRAM interface and SD card support. 200 MMACS.
> http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDX5505EZDSP/296-24965-ND/2127652
>
> This AD board is £60. It has 1MB on-chip RAM and USB host mode, no
> idea about ram interface or SD card. 800 MMACS.
> http://www.digikey.co.uk/product-detail/en/analog-devices-inc/ADZS-BF706-EZMINI/ADZS-BF706-EZMINI-ND/5408943
>
> This last one sports 800 MMACS. Is this enough processing power for
> the 5-second convolution I mentioned above? It seemed to me like that
> would need 4608 MMACs. Maybe 2304 if we take pairs of 16 bit samples
> and treat them as 32 bit values. Are my numbers correct? Are there
> optimizations that can be done to lower this number, while still
> having zero latency? I understand FFT domain convolution introduces
> latency, which is not wanted in hardware. "Naive" MAC based
> convolution doesn't seem too far out of reach.
>
> This TI board is £156. It has 256 KB on-chip RAM and support for DDR2
> SDRAM. No mention of MMACs but they say 3648 MIPS and I assume a
> pipelined MAC costs one instruction, would that be correct?
> http://www.digikey.co.uk/product-detail/en/texas-instruments/TMDSLCDK6748/TMDSLCDK6748-ND/5213032
>
>
> The more expensive boards don't seem to have more powerful DSP chips.
> And those chips don't really get much more powerful either. However,
> convolution is easily parallelised. So, worst case scenario, if you
> wanted really long impulse responses you'd have to use a few chips.
> However, even the really good 800 MMACS Blackfin ones are £15 unit
> price, so that's not so bad...
>
> So, tell me, why hasn't anyone made this yet?
>
More information about the Synth-diy
mailing list