Beatroot is a music player that can create dynamic music playlists based on bio-metric data such as Heart Rate. Given a target activity (i.e excercise, study) and given a reference song a user prefers, the music player will create a playlist that suits the target activity. The heart rate is used to measure the user's 'mood' to see if it matches the target activity. If the perceived mood does not match the target activity, the player will recurate the playlist real time to achieve the desired mood for the target activity.
-
Create a Spotify Developer account and create an app. see gettting started with Web API
-
Set the following environment variables for ID and Secret obtained from the spotify developer dashboard. see - App
export SPOTIFY_ID="your_spotify_id" export SPOTIFY_SECRET="your_spotify_secret"
-
Run the following command
python ./beatRootPlayer/beatRoot.py
To match seed songs which have similar 'feel' to the song a user prefers employs several steps.
- A song dataset is collected
- Songs are converted to Mel Spectrograms
- The Mel Spectrograms are passed through a CNN that has been pre-trained on Song Genre classifications
- Song embeddings are extracted from the CNNs
- Embeddings are used to locate the seed songs
sample mel spectrogram of a song extracted using Librosa
- Music player and Heart reate sensor development: Austin Copley
- Song matching research and development