Playing a piece of music audio at a slower speed would lower its pitch (frequency). Is there a tool and theory to slow down the song playing while keep the frequency the same? I suppose one can do windowed Fourier transform or wavelet transform. It seems one have to either pre-select the window size or dynamically choose the wavelet basis. Is there any specific and detailed theory and application for doing that?
Answer
Yeah some of us can do it, you can speed up or slow down without affect the pitch, some guys call this applications of Time Stretch, there different ways to do it, you can do in frequency domain or time domain, you will need choose what is best for you, you will find some advantages and disadvantages of each.
Time Domain:
In Time Domain you can try some techniques like:
- TDHS(Time domain Harmonic Sacaling)
- SOLA (Synchronous Overlap Add)
- PSOLA(Pitch Synchronous Overlap Add)
- WSOLA(Waveform Similarity Overlap Add)
Pros: Is fast, some algorithms are easy to understand, good quality in monophonic sounds.
Cons: Generally you'll need a very nice pitch track to splice in the right position, it is hard to do :-(, so if your pitch track fails or not work in Poliphonic sounds this algorithms will give a lot of glitches/artifacts in the output sound.
Frequency Domain:
All time stretch that i know in frequency domain are based in phase vocoder techniques.
Pros: Will work in polyphonic or monophonic sounds.
Cons: Can be painful understand all the math, implementation is a bit hard, is not so fast like time domain codes, for voice i prefer time domain results, some tricks to improve the result of the standard phase vocoder are not shared.
I can say that the window and the hop size are one of the key for the phase vocoder quality, generally we choose 4x overlap to resynthesis, one hann window of size 4096 is enough for my ears (of course if u have processing power for this sizes), the standard phase vocoder can add some reverberant effetcts, to try avoid this kind of problems you maybe need lock the phase.
For datailed take a look in the Miller Puckette and Portnoff paper
No comments:
Post a Comment