Some time back I became obsessed with writing my own browser-based Karaoke software. Those who know me know I love to sing. It’s how I met my wife (a former KJ). It’s how we got married (on a Karaoke stage). It’s weekend fun time with our kid.

But, you can’t do Karaoke without being able to change the key the song is in. Well, you can, but I can’t sing Queen in the same key as Freddy Mercury anymore. So, I went searching for JS libraries for doing this.

What I found was mostly bupkus. I did, eventually, stumble on some old work to create a JS version of the C++ SoundTouch library. This led me to some forks, where I found a PitchShifter example, and then I just had to dig in.

I rewrote all of it ground up, exporting everything as ES2015 classes and functions. I’ve had it out there for awhile on GitHub and NPM. I thought it was about time I let other’s know that it’s available.

Although I have a straight ES2015 example in the repo, I recently created a React example, consuming and using the library.