[sdiy] Re: [Fpga-synth] Hello! and an Idea!
Jeff Farr
moogah at gmail.com
Tue Sep 5 21:06:31 CEST 2006
> multiplies per sample / maximum multiply rate = distinct multipliers
> required.
Gotcha.
> Looks like I had a math error there, so given that the Spartan3E parts
> can probably reliably run at about 200MHz, 960k / (200MHz / 48kHz) = 230
> Multipliers needed.
>
> The FPGA on the S3Esk board has 20 distinct multipliers in it. That
> means you can compute 20 multiplies every 5ns, or about 4 billion
> multiplies/second. Unfortunately, that's only ~83k multiplies for every
> sample at 48kHz. That means you can do just under 1 second of
> convolution for 48kHz stereo with the S3Esk.
Underwhelming. I can see the issue more clearly now tho, working with
that math a few different ways I think the bottom line may be that a
"true" convolution is out of reach. The math is still enticing tho, I
need to ponder this more and study up on the available techniques.
I'm pretty sure many of the commercial plugins don't maintain 100%
fidelity throughout the IR. Again not knowing much about the
architechure, is it possible to make virtual multipliers? Certianly
not in the quantity we would want, but I'm thinking about how this is
accomplished with PC's which certianly don't have the same kind of
dedicated resources available to them (although they do run alot
faster..).
> Hmm - given that the audio data is not deterministic I don't see how you
> can pre-compute the results.
Yea, once I thought about that for more than a second.. it was a brain fart.
It may be possible to hack it with some granular techniques.. but that
completely defeats the purpose of using an IR.
This is all leading me to another technique. Start with how it's done
on a known system and then assess how that system can be implemented
with the hardware I've got. At the moment I've only got some info on
"BruteFIR" which is an open source convolution engine, which I'm not
sure shares enough in common to be really useful. Research time.
Subthought: If someone was going to implement this with DSP's would
they have access to more multipliers or would they use some trickery?
More information about the Synth-diy
mailing list