bhj / KaraokeEternal

Open karaoke party system
https://www.karaoke-eternal.com
ISC License
460 stars 70 forks source link

[Feature Request] - Song Ratings #31

Closed vioxxide closed 1 year ago

vioxxide commented 3 years ago

Create an algo to rate songs for (working concept : "IT" factor) -- encourages performers to pick songs that are good for the audience and create a good party atmosphere for the event.

Factors that go into the the IT Factor score:

  1. Song Length - if the song is too long it gets boring for the audience and awkward for the singer. Anything over 3 minutes is penalized the longer it goes.
  2. Musical Interludes - if the song has too many instrumental portions it is awkward.
  3. Energy level of the song (can get this from Spotify/Echo Nest API) - discourage ballads unless it's a ballad-friendly event.
  4. Danceability of the song (Spotify API)
  5. Over exposure - some karaoke songs are "done to death" and everyone is tired of them.
  6. "Crowd Pleasing" - what songs get the audience energized - Spotify has a metric that is "happy" vs. "sad". Could also use charting information from Billboard API.
  7. Skill level - how hard is it to sing? Discourage bad singers from doing tough songs esp if they are not "party" songs / crowd pleasing. Could use song key, or range of notes in the song, possibly time signature, tempo, etc. Many of these are available in the Spotify API.
  8. Genre - if the party host is pushing a genre for that night, higher points for songs that fit the target genre.
bhj commented 3 years ago

Thanks for going into detail here; it's a neat idea. Those 3rd party APIs tend to become more closed over time unfortunately, so while I'm not in favor of building features that rely on them, there are certainly other possibilities. Some of this could be achieved via a tagging system (perhaps tags could be assigned points for a given session) for example. Leaving open for further discussion!

bhj commented 1 year ago

Going ahead and closing, but still liking the potential of a tagging system (along with some room settings, e.g. tag requirements) to accomplish some of the above. Definitely worth revisiting once that system's in place. Thanks!