Phase Vocoder w/Pitch Shifting (Audio Examples and Free Software)
I've improved my Phase Vocoder application by adding in a resampler. Using the resampler in conjunction with my Phase Vocoder's existing time stretch/compress abilities allows for pitch shifting. Here's a demonstration:
The original version of my Phase Vocoder is described in detail here. As shown in earlier demonstrations, it allowed for stretching and compressing audio with respect to time while still retaining the original pitch.
The pitch shifting is performed by stretching/compressing audio while also resampling it. Both operations (stretching/compressing and resampling) are done using the same ratio. This ratio is the same as that of the original pitch to the user desired new pitch. The result is audio that is pitch shifted without changing the original speed or length.
The pitch shifting abilities of the Phase Vocoder allow users to create multiple notes from a single sound. For example, in the following demonstration I used my Phase Vocoder to adjust the pitch of a single piano note into various notes. I then sequenced these notes using Presonus Studio One to create a short portion of Beethoven's "Für Elise".
If you're interested in giving it a try on your own audio, a command line executable can be easily built for Windows, MacOS or Linux using the instructions on github here.
The command line usage is quite simple. For example, to decrease pitch by two and a half semitones use the following options:
PhaseVocoder --input inputfile.wav --output outputfile.wav --pitch -2.5
Of course the earlier features of stretching and compressing audio with respect to time, as well as detecting audio transients still exist. For command line usage please use the '--help' option. For extended help and additional usage examples please use '--longhelp'.
Also, please note that the Phase Vocoder currently only accepts mono (single channel) 16 bit uncompressed wave files as input.