[music-dsp] AMDF shortcuts for SOLA time stretching?
tfarsheed at yahoo.com
Mon Apr 21 07:27:25 EDT 2008
If you have a general idea of the frequency range of
fundamental frequencies you could try
low-pass/bandpass filtering the signal to get that
range and then mark and compare zero crossings to
estimate F0. Or use an FFT window to estimate the
peaks. There are some other frequency domain f0
detection methods (you probably already know about
I would guess that reducing complexity of the pitch
detection algorithm will reduce the accuracy and the
overall quality of the timestretching algorithm. Zero
crossing detector is as simple as it gets though...
Alternatively, you could just look into other methods
of timestretching such as Phase Vocoder or
McAulay-Quatieri Analysis/Resynthesis. But, I have no
idea which algorithm requires less computation power,
or whether you are limited by memory or by speed.
--- Charles Henry <czhenry at gmail.com> wrote:
> On Sun, Apr 20, 2008 at 11:37 PM, Ross Bencina
> <rossb-lists at audiomulch.com> wrote:
> > Hi Guys
> > Mmmm, lots of tasty acronyms today :-)
> > I've been playing around with some textbook
> overlap-add timestretching
> > algorithms over the weekend (DAFX textbook). SOLA
> for example slightly
> > shifts time segments to try to maximise
> cross-correlation (minimise AMDF)
> > around the crossfade region. I'm looking for good
> ways to compute the
> > location of the correlation maxima or
> equivalently, the Average Magnitude
> > Difference Function (AMDF) minima without having
> to evaluate the function at
> > every possible time lag.
> Sounds interesting, but I'm not familiar with the
> textbook or methods.
> I've made cross-covariance and cross-correlation
> abstractions in Pd
> that use Fourier analysis, which really speeds
> things up, for example.
> These abstractions can either run as instaneous
> output of
> cross-correlation on two signals (one block), or
> cross-correlation which adds up over the course of
> several blocks.
> I've also written the same thing in C before as
> I don't know if that's enough to improve
> performance--I'd really like
> to understand the method better. Could you offer a
> description or alternatively a math description?
> What's the cross-fade region you refer to above?
> > I remember seeing somewhere an attempt to speed
> up the correlation
> > computation by only comparing offsets local to
> regions where the signals
> > shared zero crossings. I'm wondering if other
> techniques like this have been
> > proposed/studied?. Perhaps I'm just missing the
> right google terms.. So far
> > I've looked at quite a lot of F0 estimation papers
> and some Time Delay
> > Estimation stuff... most work seems to look at
> improving accuracy rather
> > than reducing complexity.
> > I'm thinking of things like:
> > - performing correlation on decimated signals to
> find regions of interest
> > before considering every sample
> > - doing some kind of adaptive search of the space
> of potential lag offsets
> > - computing some kind of simplified
> representation of the signal. Such as
> > reducing it to a chain of splines with only
> zerocrossings and maxima/minima
> > between zero crossings positioned correctly, and
> then somehow analyitically
> > compute the best correlation on those.
> > I guess I'm thinking about both fast heuristics
> which trade speed for
> > accuracy, and optimisations which have little/no
> > Any thoughts/suggestions gratefully received..
> > Best wishes
> > Ross.
> > --
> > dupswapdrop -- the music-dsp mailing list and
> website: subscription info,
> > FAQ, source code archive, list archive, book
> reviews, dsp links
> > http://music.columbia.edu/cmc/music-dsp
> dupswapdrop -- the music-dsp mailing list and
> subscription info, FAQ, source code archive, list
> archive, book reviews, dsp links
Be a better friend, newshound, and
know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
More information about the music-dsp