[sdiy] Fourier Analysis Question
Paul Cunningham
paul at cometway.com
Fri Dec 17 16:52:17 CET 2010
word. Im interested in this sort of thing being an owner of the kurzweil 150 (fs) and absolutely *love* the dynamics of their FFT based piano. unfortunately it is bandwidth limited to 10k. so i guess one consideration is the necessary output sample rate. the other i guess is how critical the individual sine phases are over time, since you will be interpolating (like a waldorf does).
how many wavetable slots are necessary to get an accurate sound? you will need more different waves for the attack, but i suppose the partial phases become a lot more important for the sustained portion since pianos have up to three strings per note and your wavetable would need to represent that movement by scanning a loop or being really long. would you try to modulate the wavetable scanning or just run from front to back at a linear rate? what are your thoughts on that? -pc
On Dec 17, 2010, at 9:26 AM, Scott Gravenhorst <music.maker at gte.net> wrote:
> Top-posted because I have nothing directly to add other than I am very interested in this
> and will be following this thread. It also reminds me that I need to learn about how to
> do FFT (need to look for and at algorithms and methods).
>
> Tom Wiltshire <tom at electricdruid.net> wrote:
>> Hi All,
>>
>> The last few days I've been messing around doing various analyses
>> of piano tones, recorded from my old piano downstairs. I've come
>> up with a question, at the foot of this mail. The next bit is how
>> I got to the question, which you may or may not find interesting.
>>
>> <background>
>> I started off by looking at attack times, since it occurred to me
>> to wonder whether the typical synth trick of sending velocity to
>> envelope times (higher velocity=shorter attack) was justified by
>> evidence or "just seems right". I still don't have a definitive
>> answer, but on the face of it, it seems not to be so for my
>> piano. The attacks in general seem to have the same *rate* of
>> attack, with louder notes attacking for longer. The other
>> important pattern is (unsurprisingly) that lower notes have
>> slower attacks than the higher ones. Neither relationship seems
>> to be simply linear, but we could be polite and say it's a
>> "highly nonlinear" piano.
>>
>> I've also been doing fourier analysis of the piano note samples.
>> I've tried both analysing single samples from various parts of
>> the waveform and the whole note sample as a unit (80 or 100,000
>> samples perhaps). Doing this latter, it is possible to generate a
>> highly accurate fourier series for the sample. I've done this up
>> to 3000 harmonics (e.g. the lowest 3000 of the 50,000 possible
>> for a 100K Sample). The output from the fourier function is a
>> pair of arrays containing the magnitudes and phases of 3000 sine
>> waves that can be used to reconstruct the original sample.
>> Comparing a resynthesized version of this sample with the
>> original produces a file which is indistinguishable from the
>> original. Examples below:
>>
>> The original note sample
>> http://electricdruid.com/piano/original.aiff
>> The resynthesized note
>> http://electricdruid.com/piano/resyn_note_3000.aiff
>> The differences between them (remaining high end which has not been analysed)
>> http://electricdruid.com/piano/resyn_error_3000.aiff
>>
>> I'd also like to generate a sequence of waveforms for use as a
>> wavetable from this note. I can do this by finding and analysing
>> single cycle waveforms from the sample, but I'd like to know if
>> there's any mathematical way to do it. I'd like to replace the
>> 3000-point fourier result with a series of small (say 128-point)
>> fourier 'snapshots'. Synthesis of a piano note would then come
>> down to building a wavetable when the sound is loaded and then
>> interpolating sequentially between individual waveforms to create
>> the final sound.
>>
>> </background>
>>
>> So the question is this:
>>
>> Can you break one long fourier analysis result into an
>> approximate copy based on a series of lower resolution fourier
>> analyses without going back to the time domain?
>>
>> Any clues or comments appreciated.
>> Thanks,
>> Tom
>>
>>
>> _______________________________________________
>> Synth-diy mailing list
>> Synth-diy at dropmix.xs4all.nl
>> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>>
>
> -- ScottG
> ________________________________________________________________________
> -- Scott Gravenhorst
> -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/
> -- FatMan: home1.gte.net/res0658s/fatman/
> -- NonFatMan: home1.gte.net/res0658s/electronics/
> -- When the going gets tough, the tough use the command line.
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at dropmix.xs4all.nl
> http://dropmix.xs4all.nl/mailman/listinfo/synth-diy
>
More information about the Synth-diy
mailing list