Path: utzoo!attcan!uunet!wuarchive!uwm.edu!mailrus!cwjcc!tut.cis.ohio-state.edu!dnwiebe From: dnwiebe@cis.ohio-state.edu (Dan N Wiebe) Newsgroups: comp.dsp Subject: Re: Adjust-Speed CD player? Message-ID: <61860@tut.cis.ohio-state.edu> Date: 21 Sep 89 19:49:08 GMT Sender: dnwiebe@tut.cis.ohio-state.edu Lines: 28 I know nothing about DSP other than what I've figured out on my own, based on simple common sense, but it seems to me that there's a better way to lower pitch than just doubling samples. Seems to me that you should interpolate them; if you have three samples, 1000, 500, 250, and you want to make five samples out of them, it seems to me that instead of doing 1000, 1000, 500, 500, 250 you should do 1000, 750, 500, 375, 250. That's a reasonably simple add-and-shift-right-one-bit algorithm that shouldn't take too long and would preserve more of the fidelity than sample doubling. Also, if you're going to remove samples, I think you shouldn't use a simple kill-every-nth-sample procedure. It seems to me that certain samples (local maxima and minima) are more important than others. Use a five- or seven-sample queue, where you consider the middle one for removal. If it's a local minimum or maximum, zap one of the ones next to it instead. That's a bit more complicated, but I think a 10MHz 8086 could probably keep up with a 30Khz 16-bit sample stream. Of course, this just addresses the problem of compression or expansion of the waveform, not constant-pitch/variable-speed or vice versa. If we could do that in real time, to certain components of a sound and not others (for example, vary the pitch of spoken vowels but not consonants, or the pitch of a violin string but not the pitch of the bow "scrape"), we could probably ditch acoustic instruments altogether and replace them with samples. Again, while I'm very interested in this field, I am by no stretch of the imagination anything remotely resembling an authority, so keep your flames gentle :-).