KeyFinder is an open source key detection tool for DJs who are interested in harmonic and tonal mixing. Designed primarily for electronic and dance music, it is highly configurable and can be applied to many genres. It supports a huge range of codecs thanks to LibAV, and writes to metadata tags using TagLib.
It's intended to be very focused: no library management, no track suggestions, no media player. Just a fast, efficient workflow tool.
The accuracy of the algorithm is pretty good. Here's a comparison with some other packages. A hundred tracks is not enough to draw any significant conclusions, and I don't claim that KeyFinder is better than other software, but I think it shows that the algorithm is in the same league.
The standard KeyFinder interface performs batch jobs, detecting the keys of a group of files quickly and simply. There is also a detailed analysis interface, which can be used to visualise chord structures, melodies and key changes in a single recording.
I originally developed KeyFinder in 2011 as part of my MSc in Computer Science. The algorithms, design and implementation are described in some detail in my project report, which you can download, though it's a bit heavy going.
Please contact me if you have any questions, or if you want to get involved.
KeyFinder is licensed under the GPL version 3, and is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.