Harmony Generated Playlist
From Music Hack Day
Contents |
[edit] Harmony Generated Playlist
Determine the Harmonic progression of a song and generate a playlist using music from similar artists such that the key of each song matches the chord in the original song.
Example: Possibilities by Weezer
Chords: Ebm - Bb - Dm ...
Playlist: Slow Down Sugar by Nada Surf (Eb minor), Benjamin by Veruca Salt (Bb major), Soul Meets Body by Death Cab for Cutie (D minor)
[edit] Creator
Jeremy Sawruk (jeremy.sawruk@gmail.com)
[edit] About the hack
Example computation: (Fall Together by Weezer)
Chroma Vector returned from Echo Nest analysis (averaged over 10 segments):
[0.15749999999999997, 0.15630000000000005, 0.27510000000000001, 0.15570000000000001, 0.35000000000000003, 0.5857, 0.28409999999999996, 0.85419999999999996, 0.32340000000000002, 0.1207, 0.086500000000000007, 0.30419999999999997]
Dictionary of "ideal" chroma vectors (12 maj, 12 min):
{'name': "Em", 'vector':[0,0,0,0,1,0,0,1,0,0,0,1], 'key': 4, 'mode': 0 }, etc.
Maximum Cosine distance: 0.679159939408
Classification: Em
[edit] What APIs, tools or kit did you use?
Uses Echonest API and Echonest Remix API
Written in Python
Samples from 7digital
[edit] Source code and links
Chord Estimator - search by artist and song - includes maj, min, and dom7