Hello,
This post is related to and inspired by elden's topic on pitch and formant shifting
http://puredata.hurleur.com/sujet-6614-upsampling-audio-signals-using-automatable-sampling-frequency
but I do not want to clutter that thread too much with my experiment results so therefore started this new thread on pitch tracking, a subtopic of time domain pitch shifting.
ACF (autocorrelation function) and SDF (squared difference function) are used a lot in time domain pitch tracking or fundamental period identification. In Pd, I was trying how autocorrelation looks like. I also constructed another function, of which I don't even know if it has a name. For the moment, I'll call it IPPASS: 'instantaneous power of phase aligned signal segment'. It can be considered a modification or extension of autocorrelation. It seems to me that IPPASS might be useful in pitch detection, as it can much better indicate periodicity in case of missing fundamental. However, I'm not yet sure how to make it work in practical implementation, if it is possible at all.
In attached patch IPPASS02.pd, ACF and IPPASS functions are plotted for a synthesized test signal with variable harmonic recipe. The concept of period detection with ACF is, to make harmonics line up so together they peak at the fundamental interval. In addition to that, IPPASS employs periodic amplitude modulations in the signal.
By no means these functions are rock solid true/false indicators. The 'art of peak picking' is another aspect of pitch tracking. Read Philip McLeod and Geoff Wyvill on ACF, SDF and the art of peak picking:
http://miracle.otago.ac.nz/tartini/papers/A_Smarter_Way_to_Find_Pitch.pdf
Katja