Re: [linux-audio-dev] the bandwidth of the each harmonic

From: Paul <paulgfx@email-addr-hidden>
Date: Mon Feb 07 2005 - 00:07:10 EET

--- Christian Schoenebeck
<schoenebeck@email-addr-hidden-engineering.org> wrote:

> Es geschah am Freitag 04 Februar 2005 23:45 als Paul
> schrieb:
> > You can make bandwidth of each harmonics by:
> > 1) make more oscillators and detune them a bit
> (and a
> > slight vibratto helps alot). Most synth use this
> and
> > allows this, and perhaps it is known by you. This
> is
> > one of the simplest method. This is implemented in
> > ZynAddSubFX as "ADDsynth" module
> > 2) generate white noise and filter each harmonics
> with
> > a bandpass filter and mix the results. Be carefull
> to
> > make higher harmonics to have higher bandwidth.
> This
> > is implememnted in zynaddsubfx as "SUBsynth"
> module.
> > 3) You see that above graphs. You can represent
> them
> > as numbers in the frequency domain that represent
> the
> > amplitudes of the frequencies, add random phases
> and
> > do a SINGLE IFFT and voila! A very beautifull
> sound
> > will "born". This new ideea is implemented in
> > ZynAddSubFX as "PADsynth"
> > 4) you can do other things, like a vibratto on a
> > periodic oscillator and do a FFT to all sound, put
> > random phases, and do a IFFT.
>
> With "random phase", do you mean they _can_ be
> random or _should_ be random?

"Should" :) Because the natural ensembles have this
tendency (the individual instruments's are very like
to be somehow uncorelated. Ex: you cannot synchronize
2 singer that plays same note to start at same phase
of the fundamental note).
So, I belive that the ensembles sounds beautifull
because the bandwidth of each harmonics as described
earlier AND the phases are random (uncorelated).

Also, another thing that adds randomness to the
harmonic phases is the reverberation. Think for
example, one singer plays a note for few seconds: of
course he cannot keep the same note, and will result a
slight vibratto, that is a the simplest way to make
the bandwidth of each harmonic as described before. Or
good singers know how to add vibratto to their voices.
 The problem is that there is a certain relationship
between the frequencies of a certain harmonic (in
order to result a "frequency modulated" sound by a
very low frequency). But if you pass this sound into a
reverbation, the phase relationship will be
"destroyed" and will result random phases on the
frequencies contained in the frequency band. I noticed
that the better is the reverberation, the more
randomness is added to the phases of the wet reverb
signal. To intuitively demonstrate this (that a good
reverb makes the phases more random), let's consider a
very ugly reverb: a simple comb echo with little
delay(say 50 ms) with a very high feedback. This
"reverb" sounds awful, in most cases. If you draw the
phase response of this, you'll see that this filter
changes the phases of the incoming signal by a not
random (or pseudo-random) matter. Of course, if you
add 2 or more comb filters, and the delay are
uncorelated, will be more likely to add a random phase
to the signal and this makes that the phases of the
incoming signal to be more likely to be random.

I attached 2 files (for zynaddsubfx) to explain more
about above:
1) bw_without_randomness.xmz
This makes bandwidth of each harmonic by the simplest
way: it adds a vibratto to the sound. I am reffering
as "bandwidth" and not "fast changing the pitch
according to the time", because I am consider sound
from the perspective of long FFTs. You see that is not
well sounding, because even if it has bandwidth, but
it lacks randomness of the phases.
2) bw_with_randomness.xms
I added the randomness, using a reverb and taking only
the wet signal. You see, that it sound very good, even
like a very big ensseble, but because the reverb, the
sound last few seconds more than the first.
Another way that I can convert from the first sound to
the second, is to sample few seconds from the sound,
do a long term FFT (in fact the whole sound :) ), make
the phases random and than, do a IFFT.

Another important thing that I noticed, regarding
FFT's and random phases, is the IFFT of a signal with
random phases is periodic (you know this about the
periodicity of the FFTs...), and this helped me alot
to design PADsynth algorithm; because I know that the
IFFT is smoothly periodic,so I can easily loop the
sample w/o any clicks or artifacts regarding loops.

Paul

http://zynaddsubfx.sourceforge.net
 

                
__________________________________
Do you Yahoo!?
Meet the all-new My Yahoo! - Try it today!
http://my.yahoo.com
 

Received on Mon Feb 7 02:48:40 2005

This archive was generated by hypermail 2.1.8 : Mon Feb 07 2005 - 02:48:42 EET