Harmony Generated Playlist

From Music Hack Day

Jump to: navigation, search

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

Harmony Generated Playlist

Chord Estimator - search by artist and song - includes maj, min, and dom7

Personal tools