Code Monkey home page Code Monkey logo

emotionify's Introduction

Create emotionally gradiented Spotify playlists and more.

๐ŸŒ: emotionify.nitratine.net

๐Ÿ› ๏ธ Setup

  • Clone the repo
  • Execute npm install
  • Execute npm start

After following these steps, a new browser tab will open with the locally hosted application in development mode.

๐Ÿงช Development Setup

  1. Create a new app / client id at developer.spotify.com.
  2. Copy your client id into /src/config.ts.
  3. Click "Edit Settings" in the newly created Spotify developer app and add a redirect URI to where /api/spotify/authentication-callback will be hosted.

๐Ÿ“ท Snippets From the Web App

Example Sort Visualisation of a Personal Playlist Example Sort Visualisation of a Personal Playlist

Example Comparison Visualisation of a Personal Playlists Example Comparison Visualisation of a Personal Playlists

Example of Applying Filters to Playlists Example of Applying Filters to Playlists

๐Ÿ“ Features

  • Spotify authorization for library access
  • Sort a playlist by valence and energy - Sorting on these two values can create a transition from sadder/slower songs to more happy/energetic songs. - Can change the sorting audio features and sorting method - Exports to a new playlist
  • Compare playlists - Compare multiple playlists in 1D, 2D or 7D from selected audio features.
  • Playlist tools - Add playlists and apply filters and functions to playlists to manipulate song ordering - Exports to a new playlist

All audio features used are pre-computed by Spotify and obtained through their API.

โ“ Why?

Emotionify is an application I had thought about for a few years after doing a project at university on attempting to detect emotion in music and portraying it in an interactive environment.

I was curious how the method implemented would play out with music I listen to every day and wanted some extra tools for Spotify playlists.

Emotionify is not 100% accurate as emotion is highly opinion based and the values used to sort songs are averages over the whole song. This tool however does give insight on how well a computer can plot an emotional gradient with a list of songs.

emotionify's People

Contributors

brentvollebregt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

emotionify's Issues

"Sort" Party Mode

I want to sort my playlist for a party.
It would be nice to be able to "sort" the playlist in a way that it hast multiple up and down phases with more/less dancable/engergetic songs.

One way I can imagine is that you can "draw" on the graph and it picks the "nearest" songs.

Maybe letting the algorithm pick a few up and down "anchor" points and sorting the other songs inbetween.

Error Loading Playlists if User has Playlists with nothing in them.

A few days ago Spotify made a breaking change to their API. I noticed this in my own development where the request for the user's playlists with a limit of zero began to fail. (I requested with a limit of zero to get the number of playlists without fetching any playlists).

It appears other changes may have occurred as well. Today I encountered an issue where Emotionify would not load if I had a playlist containing zero entries. Deleting the offending playlist allowed Emotionify to work.

This is just a preliminary report, I haven't done further research yet. Will comment if I discover anything more.

[Suggestion] Sort playlist instead of creating a new one

First of all, I want to say that you did a great job on this project. This is the only tool I could find that does exactly what I want.

I wonder if it's possible to sort/ reorder the playlist that you already have instead of having to create a new one. As far as I know, this is possible through the "Update Playlist Items" in the Spotify API

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.