Pitchfork

<< Back

As a good, usable pitch corrector did not exist for Linux yet, I've put some time in helping the effort along. Ideally, an auto tuner will be a Jack- or LADSPA plugin that will give auto tune functionality to Linux users.

Some work has been done. I've modified the TAP pitch shifter plugin into a naive, *very* preliminary, basically unusable auto tuner. This is the source code.This naive approach has severe problems with pitch detection, and the sound quality is horrible.

A much better attempt was made by Dave Cuny, the author of TunaFish. This project was pretty much abandoned since 2005, and the sound quality of his Java program still left something to be desired, but this was mostly due to using 16-bit integer math (in the binary compiled version even 8 bit). Still, the approach seemed solid, and is nearly usable. As Java programs are unsuitable for realtime operation (due to garbage collecting), I've ported over his Java program to C++, solved some bugs and introduced some of my own.

My C++ version is a direct port and fork of the java Tunafish program. It uses FLTK as its cross-platform library, and libsndfile for audio file encoding/decoding. Being a pitch-correcting fork of the original project, I've called this project Pitchfork, although the inner workings are mostly identical to Tunafish. The main difference, functionally, is that the internal math is 32-bit floating point. Sources are here (includes original Java sources).

This is an example of the pitch correction:
Before pitch correction
After pitch correction

Keep in mind that unless otherwise stated, the program should be assumed to be released under the Qt license. The C++ version uses libsndfile, which must not be statically linked into closed source software. Hopefully, this C++ port will help bringing the project back to life!

Contact me

All help, suggestions and feedback are welcome and encouraged. Contact me for feature requests. Send them to my mail account mrjb.dnd.utwente.nl (make sure to replace the first dot with an @) or contact me via messenger at icq account 45738902, at my kleinebre.hotmail.com (again, replace the first dot for an @), or aim kleinemrjb.