I was working on some music retrieval stuff in 2010, so I joined the EchoNest developer program and played around with their web apis that let you upload music and download an analysis that you could use in all kinds of cool ways. They had an SDK with some great demos and example code. I discussed it with Eric Swenson and Paul Lamere, and had the chance to hang out with Paul Lamere and Ben Fields at ISMIR 2010 (the International Society for Music Information Retrieval conference) in Utrecht, where they gave a tutorial about playlisting:

https://ismir2010.ismir.net/program/tutorials/index.html#tut...

https://musicmachinery.com/2010/08/06/finding-a-path-through...

>Tutorial 4: Finding A Path Through The Jukebox – The Playlist Tutorial
The simple playlist, in its many forms – from the radio show, to the
album, to the mixtape has long been a part of how people discover,
listen to and share music. As the world of online music grows, the
playlist is once again becoming a central tool to help listeners
successfully experience music. Further, the playlist is increasingly a
vehicle for recommendation and discovery of new or unknown music. More
and more, commercial music services such as Pandora, Last.fm, iTunes
and Spotify rely on the playlist to improve the listening experience.
In this tutorial we look at the state of the art in playlisting. We
present a brief history of the playlist, provide an overview of the
different types of playlists and take an in-depth look at the
state-of-the-art in automatic playlist generation including commercial
and academic systems. We explore methods of evaluating playlists and
ways that MIR techniques can be used to improve playlists. Our
tutorial concludes with a discussion of what the future may hold for
playlists and playlist generation/construction.

The EchoNest SDK was hosted on google code but this seems to be where it lives now:

https://github.com/echonest/remix

https://echonest.github.io/remix/

Examples:

https://github.com/echonest/remix/tree/master/examples

More Cowbell, just 113 lines of Python code:

https://github.com/echonest/remix/blob/master/examples/cowbe...

EchoNest's technology is fantastic, and it's no surprise Spotify bought them and put it to good use.

Here's an email I wrote about it when I discovered it in June 2010 (linkes updated to archive.org):

Subject: Just found and assimilated a Python music analysis library!

This is great stuff!

https://web.archive.org/web/20100623053057/http://the.echone...

Perhaps you have heard of some of the cool recent demos by EchoNest,
which have been covered by boingboing/reddit/etc, that use their music
analysis library (and are implemented in just a few lines of Python on
top of their modules):

More Cowbell -- Adds cowbell or Christopher Walkin to music, on the beat:

https://web.archive.org/web/20100606100215/http://morecowbel...

Swinger: The Swinger is a bit of python code that takes any song and
makes it swing. It does this be taking each beat and time-stretching
the first half of each beat while time-shrinking the second half.

http://musicmachinery.com/2010/05/21/the-swinger/

Lots of other demos of apps developed with their technology, on their web site:

https://web.archive.org/web/20101101000000*/http://the.echon...

They have an online music analysis and fingerprinting server, to which
you can upload an audio file, and download an analysis, look up an
identifier (for various services including lastfm, MusicBrainz, etc),
and download metadata about the song.

It's all packed up in a nice Python library, which includes a module
for uploading and analyzing songs, audio processing, pitch shifting,
time warping, etc.

https://web.archive.org/web/20100201151826/http://lindsay.at...

SongBird music visualizer that uses the EchoNest API:

https://web.archive.org/web/20101023215452/http://runningwit...

I applied for an account, got an API key, installed the software, read
over it all to learn how it works, and ran some of the demos. It works
great, as advertised!

This will be really useful for generating dynamic race tracks,
synchronized music videos, and stuff like that!

-Don