[sdiy] Fourier Analysis Question
Richard Wentk
richard at wentk.com
Sun Dec 19 17:25:29 CET 2010
On 18 Dec 2010, at 10:32, Tom Wiltshire wrote:
> 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.
I'm talking about the timbre envelope, not the volume envelope.
The volume envelope isn't a difficult problem to solve (and would fall out of good timbre envelope analysis automatically anyway.)
> 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.
It does, because you either get a static sound or a sound with obvious steps in it.
Interpolating wavetables != interpolating partial frames, btw.
> 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.
Yes there is, because one is a static data set and the other can be modulated and interpolated dynamically.
With wavetables you've got what you've got. With partial resynthesis you've got what you've got, and everything between it and around it too.
R
More information about the Synth-diy
mailing list