Jul 20, 2023

Small C++11 library for estimating the musical key of digital audio

libkeyfinder is a small C++11 library for estimating the musical key of digital audio. It is published under the GNU General Public License version 3 or later.

It was written by Ibrahim Shaath who wrote it in 2011 as part of a master’s thesis in computer science. A GUI application to use it is available for macOS and Windows, however that is no longer maintained and does not build on contemporary Linux distributions.

In 2020, Ibrahim handed over maintenance of libkeyfinder to the Mixxx DJ software team who incorporated it into Mixxx as of Mixxx 2.3. If you want to discuss anything related to libkeyfinder with us, please get in touch on the Mixxx Zulip chat. Contributions are welcome by opening pull requests and issues on GitHub.

Checkout these related ports:
  • Zynaddsubfx - Realtime software synthesizer
  • Zrythm - Modern music production system, also known as DAW
  • Zplugins-lv2 - Collection of LV2 plugins to be bundled with Zrythm
  • Zmusic - GZDoom's music system as a standalone library
  • Zita-rev1 - Reworked version of the reverb originally developed for Aeolus
  • Zita-resampler - C++ library for resampling audio signals
  • Zita-njbridge - Command line client to transmit audio over a local IP network
  • Zita-mu1 - Simple Jack app used to organise stereo monitoring
  • Zita-jclient - Library to create a Jack client with a few lines of C++
  • Zita-dpl1 - Look-ahead digital peak level limiter
  • Zita-convolver - Fast, partitioned convolution engine library
  • Zita-bls1 - Blumlein Shuffler converter of binaural signals to stereo speaker pair
  • Zita-at1 - Autotuner Jack application
  • Zita-alsa-pcmi - Easy access to ALSA PCM devices
  • Zinf - GTK-based MP3 player