[sdiy] Walsh bank, was: Re: [sdiy] Micro as a Linear to Exponential converter?
Tom Wiltshire
tom at electricdruid.net
Sun Aug 16 12:23:54 CEST 2009
On 16 Aug 2009, at 09:38, Magnus Danielson wrote:
> x(t) = IDFT(X(f))
> X(w) = DWT(x(t)) = DWT(IDFT(X(f))
If I'm going to calculate X(t) from X(f) using the IDFT, I think I'll
output those samples directly, rather than add additional stages of
DWT and then Walsh function calculation.
Whilst this is probably a control processor that doing these sums
(e.g. need not be every sample in real time) it doesn't seem
efficient - transform from frequency domain to time domain back to
frequency domain to time domain again! Phew!
I'm still not convinced that there's any real gains to be had from
Walsh synthesis as opposed to Fourier. Sine waves are too damn hard
to calculate, so you finish up doing a lookup, and the multiplies
that everyone is trying to avoid is a series of one-cycle MACs, one
for each harmonic. One ADD takes as long as one MAC.
So it boils down to whether you can calculate a Walsh function
quicker than you can lookup a sine value from a table. Not a lot in
it, I'd have thought.
And both Fourier and Walsh synthesis have the same control problem -
how do you easily shape the dynamic evolution of many harmonics/
functions over time? After all, I don't want to spend my *whole* life
setting up envelope generator parameters...
Don't get me wrong - I'd love it if Walsh provided an easy, efficient
way to generate arbitrary waves, but I don't see it yet.
T.
More information about the Synth-diy
mailing list