mixxxdj/mixxx — pull request #47 by rryan (2013-07-14 03:44:59+00:00)
Title: Key detection and pitch shifting.

This branch adds basic key detection and pitch shifting to Mixxx. It also switches to using librubberband for tempo and pitch shifting instead of libsoundtouch which to my ear is a huge sound quality win in exchange for a moderate CPU increase.

Features / Improvements:
* librubberband for tempo and pitch shifting.
* Key analysis via our VAMP plugin support. Currently uses the Queen Mary Key Detector but libkeyfinder could easily be added.
* User notation preferences so users can switch between preferences.
* Global dominant key and the full list of track key changes are saved in the database.
* Key syncing based on the Circle of Fifths.
* Key display widgets.
* Support for display and parsing of OpenKey, Lancelot, and Traditional notations.
* No more mutex locks in the scalers.

Thanks to @ktec for writing the initial version of the preferences (forked from ```DlgPrefBeats```) and Varun Jewalikar for writing the initial key analyser to use the VAMP plugin. Note that this branch is forked from Keith's features_key_preferences branch but I reverted everything but ```AnalyserKey``` and ```DlgPrefKey```.

@esbrandt -- I will revert the res/skins change before merge.