Music has become an essential part of our lives in today's world. We have the ability to enjoy music on any device, anytime and anywhere. Streaming platforms like Spotify have become an everyday routine for many people. However, sometimes we feel like discovering new songs. This is where Sharify comes in, intelligently recommending the perfect song to match a person's mood, all based on their friends' music preferences.
Sharify is a Spotify-based app that allows users to share their musical preferences with their friends, providing personalized music recommendations instantly. The app is easy to use, and there is no need to create a separate account. You can simply authenticate your Spotify account on your first use, and all your data will be collected automatically. You will only need to login or authenticate again if you decide to update or delete your profile.
It's not necessary to have an account to receive recommendations or visit your friends' profiles. Once you connect your Spotify account, a public Sharify profile is generated. This profile can be shared with anyone, allowing them to generate music recommendations based on their mood, location, and activity.
Sharify analyzes music preferences using Spotify's artificial intelligence to score the acousticness, danceability, energy, instrumentalness, and valence of the songs you listen to. This allows Sharify to recommend songs that more accurately match your current mood, location, and activity. For example, if your friend is feeling anxious and wants to listen to some music while studying, Sharify tends to recommend instrumental music with positive lyrics to help keep your friend focused and calm.
With a deep analysis using artificial intelligence, it's possible to assign attributes that describe audio characteristics for each track. These attributes are then used to provide personalized music recommendations that suit the user's needs at that precise moment. It's important to note that musical genres are not taken into account in this analysis, as the recommendations are solely based on the individual's music preferences. The attributes used in the Sharify app include:
Acousticness (min: 0 / max: 1): A confidence measure of whether the track is acoustic. 1.0 represents high confidence the track is acoustic.
Danceability (min: 0 / max: 1): Danceability describes how suitable a track is for dancing based on a combination of musical elements including tempo, rhythm stability, beat strength, and overall regularity. A value of 0.0 is least danceable and 1.0 is most danceable.
Energy (min: 0 / max: 1): Energy represents a perceptual measure of intensity and activity. Typically, energetic tracks feel fast, loud, and noisy. For example, death metal has high energy, while a Bach prelude scores low on the scale. Perceptual features contributing to this attribute include dynamic range, perceived loudness, timbre, onset rate, and general entropy.
Instrumentalness (min: 0 / max: 1): Predicts whether a track contains no vocals. "Ooh" and "aah" sounds are treated as instrumental in this context. Rap or spoken word tracks are clearly "vocal". The closer the instrumentalness value is to 1.0, the greater likelihood the track contains no vocal content. Values above 0.5 are intended to represent instrumental tracks, but confidence is higher as the value approaches 1.0.
Valence (min: 0 / max: 1): A measure of musical positiveness conveyed by a track. Tracks with high valence sound more positive (e.g. happy, cheerful, euphoric), while tracks with low valence sound more negative (e.g. sad, depressed, angry).
After every song is analyzed by Spotify's artificial intelligence, all audio attributes are converted to compatibility measures using the SRS (Sharify Recommendation Standards), where a decimal value V between 0.0 and 1.0 is assigned as a literal based on the following intervals.
SRS Conversion Values:
(V >= 0.0 and V <= 0.5) = DOWN
(V >= 0.6 and V <= 1.0) = UP
(V >= 0.0 and V <= 1.0) = NEUTRAL
If a track has the following attributes:
Acousticness = 0.2,
Danceability = 0.5,
Energy = 7.2,
Instrumentalness = 0.1,
Valence = 6.4
It will be converted to this:
Acousticness = DOWN,
Danceability = DOWN,
Energy = UP,
Instrumentalness = DOWN,
Valence = UP
A relationship matrix is then used, with R rows, where R represents moods and activities, and C columns, where C represents sound attributes. For each (RixCj) relationship in this matrix, values are assigned as UP, DOWN, or NEUTRAL to validate a song. A match only occurs when the song's attributes are compatible with what is predicted in this relationship matrix.
The relationship matrix is used first to validate the criteria related to the selected (1) Mood and then again to validate the selected (2) Activity's criteria, where parameters filled in the (1) previous validation with UP or DOWN are ignored, and parameters marked as NEUTRAL are overridden with data from the (2) new validation, in some cases, a step can be added in this process if the location is not considered as a "neutral space".
If a user indicates that they are focused, at the gym, and working out, the following validations will occur:
1) Selected Location: Gym
Acousticness = NEUTRAL,
Danceability = NEUTRAL,
Energy = UP,
Instrumentalness = NEUTRAL,
Valence = UP
2) Selected Mood: Focused
Acousticness = NEUTRAL,
Danceability = NEUTRAL,
Energy = DOWN,
Instrumentalness = UP,
Valence = NEUTRAL
3) Selected Activity: Working Out
Acousticness = NEUTRAL,
Danceability = NEUTRAL,
Energy = UP,
Instrumentalness = NEUTRAL,
Valence = UP
4) Final Song Target
Acousticness = NEUTRAL,
Danceability = NEUTRAL,
Energy = UP,
Instrumentalness = UP,
Valence = UP
Note that in this case, the location is an exception and has an additional first validation. So, the energy attribute from the mood cannot override the past state. This allows the generated track remain the person excited and enthusiastic about training. Even though the focus may often be on calmness and concentration, in this context, the characteristics of it are ultimately reduced based on the needs of the location.