[sdiy] Fourier Analysis Question

Tom Wiltshire tom at electricdruid.net
Sat Dec 18 11:32:04 CET 2010


Richard,

> You can, but FFTs are almost useless for analysing fast attacks, because the window size isn't small enough to capture the partial movement within the attack. 

Yeah, I realise. For the work on attacks, I was using a different approach. I have a whole series of different attack and decay curves, and I wrote a script which exhaustively tries all the different combinations and times and keeps track of the best fit. Essentially we assume that a synth could do a reasonable job of copying this envelope, then we see which synth envelope is the best fit.
The hope was that I'd be able to capture some data about average attack length vs pitch and velocity to see if there are useful patterns. And by getting an algorithm to do it, it becomes "objective" in some sense that it doesn't when I just pick a point as the boundary between attack and decay.

> Also, pianos - like most instruments - include inharmonic partials. The whole point of a piano is the phasing and movement you can hear if you hold down a chord, and that's created by deliberate detuning of the strings. 

The inharmonic partials are very interesting. The major limitation of wavetable synthesis is that although you can have arbitrary waveforms, each one is built of only harmonically-related signals. Doing a "filtered noise" sound or an "FM clang" is going to be very hard to achieve.
In part, I want to separate out the parts of the piano waveform I *can* analyse with FFT and model with wavetable synthesis (e.g. all the harmonic bit) and see what and how much is left over. If I can see and hear the enharmonic part alone, it might give me clues as to how to model that element of sounds.

> This means no single waveform is exactly identical to any other cycle.

As long as enough of them are roughly linearly related to other nearby waveforms, it doesn't matter. Wavetable synthesis produces a quasi-periodic waveform where no two single waveforms are identical too. You can have more points in the wavetable and capture more of the quirks, or have less and only capture the broad outlines. Exactly how many waveforms are required to get exactly how close is one of the things I'm interested in finding out practically.

> Discrete stepped timbre-frame synthesis won't capture that.
> 
> You can use stepped timbres for conventional synthetic wavetable synthesis, but there's no advantage to using FFTs instead of ROM wavetables unless you're recalculating them dynamically. And if you're doing that you may as well build a system with N DCOs controlled by partial track information that can be calculated, interpolated and modulated with a decent refresh rate of - say a few kHz.
> 
> For that approach you use FFT analysis to create a database of partial sets that varies with time, frequency and velocity, and then interpolate between partial sets dynamically as the note evolves.

There really isn't any difference in result between having a database of partial sets (a frequency-domain representation) and having a wavetable (a time domain representation). Obviously if you have one, you could generate the other. I'm using both in my analysis, since I find both the waveshapes and the harmonic spectrums interesting. I haven't got particular hardware in mind.
In the past I've programmed a dsPIC oscillator chip which used partial sets to store waveforms (very compact way to store large numbers of waveforms) and then built wavetables into RAM when a given wave was selected and interpolated between waves in the wavetable.

Regards,
Tom




More information about the Synth-diy mailing list