Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!rutgers!mit-eddie!genrad!decvax!dartvax!creare!gda
From: gda@creare.creare.UUCP (Gray Abbott)
Newsgroups: comp.dsp
Subject: Re: Adjust-Speed CD player?
Message-ID: 
Date: 25 Sep 89 17:47:47 GMT
References: <61860@tut.cis.ohio-state.edu> <7815@microsoft.UUCP>
Sender: gda@creare.UUCP
Organization: Creare Inc., Hanover NH
Lines: 32
In-reply-to: brianw@microsoft.UUCP's message of 23 Sep 89 03:20:40 GMT



The most common term in the literature for changing the speed of
a signal without changing the pitch is "time scaling".  Some researcher's names
I vaguely remember are Jones (at Rice U.) and Quatieri (at MIT Lincoln Labs).
Follow them to other references.  Check IEEE ASSP journals.

Jones had a TMS32010 algorithm which could process speech in real-time.
Quatieri uses (I think) a cosine transform method, which I "hear" is
very good, even on music, but I haven't "heard" it.

The FFT approach would be to use a Short-time Fourier transform (see
Rabiner and Schafer's _Digital Processing of Speech Signals_), with
modifications to the reconstruction algorithm to allow for compressed/expanded
time scales.  Any modifications to the STFT usually degrade the signal.
It's probably a little beyond current DSP chips (probably not beyond custom
military systems), but not too far out of reach.

The inverse problem of pitch shifting was correctly addressed by another
poster: you interpolate and decimate to get a rational shift.  Note that
musicians can be very sensitive to small errors in pitch.  This is why
some digital synthesizers use variable rate sampling instead of digital
pitch shifting.  To achieve high quality shifts can require several megabytes
of buffer space for the interpolate/decimate operations.  Fortunately,
it doesn't require a whole lot of computation, if done right.

It's been a while since I've thought about any of this, and I don't have
my notes at hand, so don't take it all as gospel.


						Gray Abbott
						...dartvax!creare!gda