ChatSam / beatRoot_MC

Dynamic music curation based on biometric data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

beatRoot_MC

beatRootLogo

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.

beatRoot Intro image

How to run it

  1. Create a Spotify Developer account and create an app. see gettting started with Web API

  2. 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"
  3. Run the following command

        python ./beatRootPlayer/beatRoot.py

Architecture

beatRoot Architecture

Song matching

To match seed songs which have similar 'feel' to the song a user prefers employs several steps.

  1. A song dataset is collected
  2. Songs are converted to Mel Spectrograms
  3. The Mel Spectrograms are passed through a CNN that has been pre-trained on Song Genre classifications
  4. Song embeddings are extracted from the CNNs
  5. Embeddings are used to locate the seed songs

beatRoot MelSpectrogram

sample mel spectrogram of a song extracted using Librosa

Team

  1. Music player and Heart reate sensor development: Austin Copley
  2. Song matching research and development

About

Dynamic music curation based on biometric data


Languages

Language:Jupyter Notebook 100.0%Language:Python 0.0%Language:C++ 0.0%