back to list

Re: Brain shifters

🔗rtomes@xxxxx.xxx.xxxxxxxxxxxxx)

5/16/1999 8:01:40 PM

[Jeff Scott 184.19]
>FFT is only necessary if you want to do fancy stuff like formant
>correction (to un-chipmunkize). That's not necessary for this
>application.

>The easy way to do it in real time is just use a standard
>pitch shift algorithm. Let's say you need to shift the brainwaves
>up by 3 octaves - a factor of 8. So we grab snippets and
>each snippet will get played 8 times at a rate of 8 times the
>original.
... [lots more snipped]

Jeff, I don't believe that such a scheme can work properly because in
repeating a segment a bunch of frequencies are created at the repeat
frequency. Even if this is removed by some scheme the continuity
(phase) of sounds at ALL frequencies cannot be achieved except by
actually continuing from the correct phase which may have no
relationship to the sample repetition rate.

Jeff, I really enjoyed your articles about digital synthesis
methodology. Thanks.

-- Ray Tomes -- http://www.kcbbs.gen.nz/users/rtomes/rt-home.htm --
Cycles email list -- http://www.kcbbs.gen.nz/users/af/cyc.htm
Alexandria eGroup list -- http://www.kcbbs.gen.nz/users/af/alex.htm
Boundaries of Science http://www.kcbbs.gen.nz/users/af/scienceb.htm

🔗J. Scott <cgscott@xxxxxxx.xxxx>

5/16/1999 8:54:17 PM

Hey Ray,

> Jeff, I don't believe that such a scheme can work properly because in
> repeating a segment a bunch of frequencies are created at the repeat
> frequency. Even if this is removed by some scheme the continuity
> (phase) of sounds at ALL frequencies cannot be achieved except by
> actually continuing from the correct phase which may have no
> relationship to the sample repetition rate.

Thanks for the feedback. I may have oversimplified how it works
at the beginning of the email, but the part where I describe a
two-tapped delay line with complementary envelopes is good to go.
Try it and see. That is the method used in most digital effects
boxes and the generic 'pitch-shift' algorithms in a lot of software
(the real pricey modern effects do FFTs with formant correction
but none of the older ones do because real-time FFTs weren't technically
feasible until recently).

As far as your comments on phase go, you should know that FFT
blocks are also reassembled using the overlap-add method with
windowing. The reason this is done is because just about any
kind of processing will result is scrambled phases. A lot
of FFT code throws out all the phase information (by forcing
the phases to zero) as its first step since it's just taking
up space. I speak from experience here. You can also read
"Elements of Computer Music" by Dick Moore and look at the
SoundHack manual. I would expect that csound's lpc unit
also does overlap add (although it does make use of the phase
info - the Settel/Lippe harmonic separation widget in SoundHack
is another algorithm that uses phase info, but even these
things overlap-add to reassemble.

I've personally created a couple of real-time pitch shifters
with this method and I can vouch for it.

Though I admit that I've never shifted anything up more than
four octaves with it.

Best,

Jeff