[linux-audio-dev] PADsynth (or how to generate beautiful sounds with longterm FFTs)

Paul paulgfx at yahoo.com
Sun Mar 13 20:47:45 UTC 2005

I am Paul, the author of an opensource (GPL) software
synthesizer for Linux and Windows (it's at:
I am writing this mail to you because I have seen your
program (Mammuth) and the way how it process the
sound, by using long-term ffts.

I made a synthesis tehnique, that use longterm ffts
(no windows) and is very intuitive, even for a
musician. I implemented this ideea into my softsynth
(as the "PADsynth" module) and it produces very good
result and the ideea itself is very simple. 
To understand this and to use this intuitively, is
very recomanded to read what I consider the "bandwidth
of each harmonic" at
http://www.kvraudio.com/forum/viewtopic.php?t=74129 . 
The base ideea of the bandwidth of each harmonic is
that the harmonics of the sounds have larger
bandwidths on higher frequencies. This happens in
choirs, in detuned instruments, in vibratto,etc ; some
ways to obtain the bandwidth are well known (but there
are other ;-) ).
Now, if I am considering the bandwith of each harmonic
when I am using long term FFT synthesis, I will get a
very beautiful sound and I can manage easily how is
the enseble effect of the instrument.
So the algorithm is very simple:
1) generate a long real array that contains the
amplitude of the frequencies (it's graph looks like
this http://zynaddsubfx.sourceforge.net/doc/paul1.png
2) convert this array to complex, by considering the
phases random (this is the key: that phases are
3) do a long-term IFFT of the complex array
4) will result a perfectly looped sound that can be
played at several pitches
5) enjoy of this beautifull sound obtained ;) 

As you see, this is very intuitively (even from
musical perspective). Of course I made some variations
of how I generate the array and I can make even
non-musical sounds like noises, or metallic sounds.  
This is implemented in ZynAddSubFX and, because it's
open source software, it can be studied (look in the
src/Params/PADnoteParameters.C from the source code


Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

More information about the Linux-audio-dev mailing list