As I understand it, pitch-shifting (without changing speed) and time-scaling (without changing pitch) are two sides of the same coin, because if we can do one we can get the other through resampling and changing the playback speed of samples.
But when I think about it, I don't really understand what it means to pitch shift. The Wikipedia article is completely unenlightening, because it only describes pragmatic methods. They all intend to implement a "pitch shift", but at no point is it actually defined what that is. Like, I know it when I see it, I'm not stupid, but is that really the best we can do?
I struggle to come up with something, because in order for pitch to be, say, doubled, roughly speaking the wavelength of all waveforms "locally" has to be halved and each repeated once, but what is local?
- Is there a mathematical definition of a "pitch shift" operation on a signal, or is this purely a subjective human phenomenon?