Tuesday, 15 December 2015

Finding the mood of a song

Playlists let us group songs in a way that is meaningful to use instead of the traditional approach of listening to songs album by album as directed by the artist. So many of us have large music collections these days that playlists are
becoming increasingly more important way of categorising our music.

One way of categorising music is by considering the ambience or mood of the song. Clearly you would aim for a different ambience for a romantic evening at home then for a house party!

Manual Mood Identification

The original way to do this would be look at your songs and manually select them based on their mood. But its difficult to do this for most songs without actually listening to them, and most of us don't have time for this anymore.

Automatic Mood Identification

Its now possible to use computers to listen to the songs and extract various acoustic attributes, then by plotting multiple attributes against each other a mood can be worked out.One way of defined mood is by considering two acoustic attributes: Energy and Valence.

Energy

Represents a measure of intensity and powerful
activity released throughout the track. Typical energetic tracks feel
fast, loud, and noisy. For example, death metal has high energy, while a
Bach prelude scores low on the scale.

Combining these two on a graph is a strong indicator
of acoustic mood,for example a song with high arousal and high valence could be defined as delighted, whereas one with high arousal and low valence could be defined as angry. Low arousal and low valence may be bored, but low arousal and and higher valence could be content. This methodology is used by companies such as Echonest for the Spotify site.

SongKongs way of doing things

SongKong Pro also uses the Energy/Valence algorithm, built on top of the data provided by AcousticBrainz , these are the same guys who already provide BPM data. When a MusicBrainz song is identified by SongKong we can then lookup the acoustic attributes and calculate the mood. The mood is then stored in the standard mood metadata field so it is available to other applications.

Because the acoustic attributes have already been calculated for millions of songs your computer doesn't have to actually analyse the song itself. This computationally hard work has already been done

Because the AcousticBrainz is already stored in the JThinkMusicServer we can get this information at the same as we get everything else,
meaning no additional time is spent getting these new acoustic
attributes.

We also add some other acoustic attributes that we will talk about more in another post