Hopefully someone out there will find this useful or cool.
I hacked together a quick application that plays a couple mp3s, with a crossfader - and which downloads (from echonest) the beat information for the song (position of each and every beat … booyah!), then beat matches (using granular resynthesis to timestretch … no pitch shifting).
The best explanation and demo a youtube video I put together is here:
A quick list of the libraries used in this project:
Echonest – to retrieve beat information
jsonCpp – for reading Json data from echonest
SoundTouch – for time stretching the audio
mpg123 - for decoding mp3s
Juce – for everything else - duh!
- all libraries are GPL or Apache license, all are fully included except juce
- all libraries have the implementation included and can be run without compilation except mpg123
git source is here:
A more in depth explanation is here: