todd@ivucsb.sba.ca.us (Todd Day) (09/21/89)
Is there an easy way to do pitch shifting digitally in real time? The only method I've been able to come up with involves repeating or throwing out sections, which results in clicking. I would like the method to be short and sweet, as I only have time for 125 instructions/sample (250 if I only do mono). Thanks. -- Todd Day | todd@ivucsb.sba.ca.us | ivucsb!todd@anise.acc.com "It takes a smart man to know when he's stupid." - Barney Rubble
mg@ukc.ac.uk (M.W.Guy) (09/23/89)
In article <1989Sep21.163112.5656@ivucsb.sba.ca.us> todd@ivucsb.sba.ca.us (Todd Day) writes: >Is there an easy way to do pitch shifting digitally in real time? >The only method I've been able to come up with involves repeating >or throwing out sections, which results in clicking. > >I would like the method to be short and sweet, as I only have >time for 125 instructions/sample (250 if I only do mono). The real way to do this is the ubiquitous phase vocoder. Process the sound into amplitude/phase components for many frequency bands, diddle with the results appropriately (in this case, shift the frequency components up) and then transform back. A 1024-point FFT will do this for you. However, in 125 instructions of a conventional processor, your best way is probably to have a cyclic buffer, with independent read- and write-pointers, running at different rates. You get a click every time the pointers pass each other, but you can arrange the size of the buffer so that this happens every 50th of a second and people will ignore it as mains noise... Yuk Martin