[sdiy] Hardware convolution box?

Scott Gravenhorst music.maker at gte.net
Mon Feb 13 16:49:15 CET 2017


Thomas Strathmann <thomas at pdp7.org> wrote:
>On 12/02/17 22:39, rsdio at audiobanshee.com wrote:
>> So, when combining FIR and FFT processing for convolution, you'll
>> need MAC, bit-reversed addressing, automatically-wrapped buffer
>> pointers, and possibly other special instructions for maximum
>> efficiency at a given instruction clock rate. Hopefully the DSP you
>> choose will have example code in optimized assembly for a partitioned
>> convolution, and you won't have to piece all of this together
>> yourself. Yes, you could do it all in Standard C on a general purpose
>> ARM or XMOS, but you'll need a higher clock rate and more code to do
>> the same amount of work.
>
>I'm wondering: How precious would development time hav to be to warrant 
>going with a DSP and optimized assembly code instead of taking the more 
>blunt approach with a fast CPU and some plain C code? From following 
>this discussion I get the impression that the answer to that question is 
>"Very" but is that true?

My answer would be "very" based on my experience.  I've been developing MIDI
synthesizers on a Raspberry Pi 3 using C (with NEON enabled).  The synths all use
single precision float (because it's native to NEON) and I've attained from 16 to 64
voices of polyphony and includes a reverb effect.  Actual voice count depends on the
complexity of the synth's internals.  I can't say how this translates to convolution
because I've not tried it yet, but I have to say that for such an inexpensive board,
it is really quite powerful.  I actually didn't expect the performance level I'm seeing.

-- ScottG
________________________________________________________________________
-- Scott Gravenhorst
-- http://scott.joviansynth.com/
-- When the going gets tough, the tough use the command line.
-- Matt 21:22




More information about the Synth-diy mailing list