I forgot to add that there is a matlab script which does the basic phase
vocoder stuff on
musicdsp.org. As I am the one who writes this script, I
can help you if you have any questions ;). As the script only uses the
matlab language and fft, it should run on scilab and/or octave, but I
haven't tried myself.
cheers,
David
Cournapeau David wrote:
Well, kind of. The idea of the phase vocoder, which
more or less
describes what you said,
is to decompose each time-domain frame into N frequency bins, and to
suppose that there is only one underlying stationary sinusoidal in
each frequency canal. If this is the case, you unwrap the phase to
have the frequency of the sinusoid, and you resynthetise it with a
longer or shorter time frame.
The problem is that it demands short windows (for the hypothesis one
stationary sinusoid in each frequency canal to be valid), which means
very poor frequency resolution. Basically, you have to make a trade
off between time resolution and frequency resolution (nothing new here
;)). So the idea is to adapt the window size to the content of the
signal, which means being able to detect the transient (which are
better stretched with small windows)...
J Bonada wrote his PhD on this subject, if you are interested:
http://www.kug.ac.at/iem/lehre/arbeiten/hammer.pdf
cheers,
David