Change pitch of a wav file without changing the Sample rate? I'm creating a Python library I call PAL, (Python Audio Library) and I need some help. What ways are there to change the pitch of a wav file without changing the sampling rate? I have complete access to the data contained in said file as numbers so if there is an equation or method that would work please let me know. To recap


Change the pitch
Don't touch the sampling rate
I can mathematically change the samples freely
If you're looking for a library solution, there's a few, for instance librubberband, binaries available in many Linux distros.

If you need a wheel to reinvent, well, approaches may vary, from granular stretching (more applicable to time stretch, but these two effects always come hand in hand), to FFT uppitch (probably somewhat similar in the frequency domain), I doubt there's a standard consensus on how to implement this effect.