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