[sdiy] Fourier Analysis Question

David dingebre at 3dphysics.net
Fri Dec 17 18:06:30 CET 2010


What's the sample rate?

David 

-- -----Original Message-----
-- From: synth-diy-bounces at dropmix.xs4all.nl [mailto:synth-diy-
-- bounces at dropmix.xs4all.nl] On Behalf Of Tom Wiltshire
-- Sent: Friday, December 17, 2010 8:09 AM
-- To: synthdiy diy
-- Subject: [sdiy] Fourier Analysis Question
-- 
-- 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




More information about the Synth-diy mailing list