[sdiy] Fourier Analysis Question

Scott Nordlund gsn10 at hotmail.com
Fri Dec 17 23:12:38 CET 2010


> I suppose there are two approaches: Place the waveforms irregularly in the wavetable and then scan it all linearly, or change the rate at which you interpolate between different waveforms. To my way of thinking about it, the second is easier, but waldorf did it the first way, since they didn't have the options we have now.
> The partial phases is a very good point. Usually you'd want to keep phases the same for wavetable interpolations, since that way you get a linear variation in harmonic amount from one wave to the next (e.g. it is a strictly linear mix). If you change the phases, the change of harmonic amount is not likely to be linear. If I can get to a series of waveforms, I could ignore the phase and see if what comes out remains "pianoey". It'll no longer match the original waveform, but would keep the same harmonic content and approximately similar harmonic evolution. Will it still *sound* the same as the original? That'll be an interesting experiment. Anyone got any experience of wavetable synthesis with waveforms with varying phases to offer?

Here's a relevant paper, if you haven't seen it, it nicely enumerates your objectives: http://www.musicdsp.org/files/Wavetable-101.pdf

It's worth noting also that the Synclavier's resynthesis feature was exactly what you're talking about (only it was limited to 24 harmonics), and it could space "timbre frames" arbitrarily.  

I've also experimented with wavetable synthesis recently, after it came to my attention that organ companies were working with PWM and resonant filtering done entirely in the additive domain as early as 1974.  This came out of Ralph Deutsch's work for Yamaha and Kawai (hmm, the article I uploaded yesterday seems to have gotten a healthy amount of interest...).

You can hear some of this additive filtering here, toward the end: http://www.nightbloomingjazzmen.com/Les%20Sounds/Goodbye%20to%20Love.mp3  As far as I know the filter sweeps and formants are all additive (possibly the chorus too).  This is from the first generation Kawai digital organ, which came out in 1982.

I decided to try my own variation in Pure Data, sort of splitting the difference between additive and wavetable synthesis.  I recognize that wavetables are more efficient than straight additive synthesis, but that generating the wavetables offline is both tedious and limiting, so I decided to do it algorithmically, generating the next waveform in the sequence through some arbitrary series of operations.  And since it's done relatively slowly, it can be very elaborate without significant penalty.  I can select a subset of the harmonics, randomize the amplitudes, scale/invert/rotate the spectrum, apply arbitrary filtering, etc. and then synthesize and store the waveform in a table, and cheaply derive multiple voices from that.  The disadvantages are that some "smooth" modulations can come out strange sounding, that the motion is "forward" only and that all voices share the same waveform (analogous to modulating a wavetable with a single global LFO rather than per-voice envelopes).  But there are also some nice advantages: it's computationally cheap, perfectly band limited, and can easily generate an infinitely variable, non repeating sequence of waveforms.  Also, many of the "classic digital" gritty bass effects (as you'd find in a PPG Wave or Prophet VS) can be achieved by mirroring/repeating the spectrum and applying sinc filtering to simulate zero order hold.  And this is still band limited!

Here's a sample: http://www.mediafire.com/?2gocrc1xe1ahoda

You'll hear the following: fixed pulse wave, PWM, filter sweep without PWM, filter sweep with PWM, two additional notes added at octave intervals, then detuned unison, then a chord.  The PWM obviously doesn't sound particularly smooth since I'm updating the waveform at a quite slow rate, and it's a little bit odd at narrow widths since I'm normalizing spectral power at each step.  I'm also throwing away all the phase data so the waveform doesn't resemble an actual pulse wave.  Unfortunately this can result in a waveform with a very high peak amplitude, but retaining the phase data results in weird sounding modulation during crossfades.

Here's a more reasonable sounding example, an excerpt from something I'm working on (it's a little weird sounding by itself): http://www.mediafire.com/?hob7170gyho2hx3
 		 	   		  


More information about the Synth-diy mailing list