I’m looking for methods or tools that allow you to raise or lower the pitch of audio while keeping the original sound quality intact. Ideally, this should work for vocals or full music tracks without introducing noticeable artifacts or distortion.
I’ve used the STK’s pitch shifter in the past with decent results. I’m sure there’s better ones out there but it’s a good starting point if you’re just looking for something simple:
There’s three main libraries I know of for this:
Rubber Band
zplane ELASTIQUE
Signalsmith Stretch
There’s pros and cons to each, and your choice will depend on your needs and budget. I’ve used Rubber Band (which I found good for offline renders) and Signalsmith Stretch (which is flexible and free). Elastique is considered to be the industry standard and is very good. I’m not a fan of their licensing, but it’s still probably the best option if you have the budget for it.
If you’re any good with math, you can implement one yourself: https://arxiv.org/pdf/2202.07382
This algorithm (PVDR) is more or less state-of-the-art. I’m sure Elastique and other algorithms have further refinements, but PVDR is simple, general-purpose, and realtime while still sounding great on almost all content. My first big DSP project was implementing a phase vocoder—you learn a ton, and it’s very gratifying when the algorithm you use was written by hand.
If you’re in a time crunch or need the absolute best quality, I second the recommendations made by @icebreakeraudio.
