[sdiy] Walsh bank, was: Re: [sdiy] Micro as a Linear to Exponential converter?

Magnus Danielson magnus at rubidium.dyndns.org
Sun Aug 16 21:25:25 CEST 2009


Tom Wiltshire wrote:
> 
> 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!

You only have to do that once in the processor... after that you just 
make sure the coefficients is being updated, just as with any poly-synth.

> 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.

Well, you could argue that playing a walsh sequence could very well be 
directly replaced by plaing the sample series through a mux or just 
dedicate a DAC for it...

> 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...

The control problem is very similar. There is no transform-based 
solution that solves the problem.

> 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.

Not significantly better, just different from Fourier.

Cheers,
Magnus



More information about the Synth-diy mailing list