Whisperify is an interactive way to learn about your favourite songs on
Spotify. It chooses 10 songs from your top tracks or a playlist, generates a
quiz, and plays you 5-second snippets, or 'whispers', of each song. You then
get time to guess the song and get scored on your speed and accuracy.
Try Whisperify here, or
view the code.
This page is for the ongoing updates for the Whisperify platform. For the
ideation process behind Whisperify,
visit the main Whisperify post.
After deploying Whisperify, the main comment I received was the fact that a
user's top songs weren't always their favourite music, depending on how they
use Spotify. To remedy that, I added a feature to quiz yourself on any of
your Spotify playlists! This led to the release of v1.1.
Over the next couple months, Whisperify would be shared on various social
media platforms, including a large Spotify community on VK that drove a
spike in users from Russia, and even reaching the front page of Reddit on
one occasion!
Looking back, I definitely should have implemented features that helped user
retention earlier to take advantage of the organic growth.
Using suggestions from the Reddit comments, I started working on v1.2. More
control over the quizzes was the main request, so I implemented an options
panel that allows you to change the time limits, and exclude artists. This
was important especially for users whose top songs had been contaminated.
Multiple choice was another popular request, with many users drawing a
parallel between Whisperify and iQuiz for the iPod. The addition of multiple
choice meant two things, the need to revamp the scoring system, and the
ability to make shareable quizzes.
For the scoring system, I added much quicker points decay and a max score
that depends on your quiz options. Multiple choice would allow you to get a
lower max score than the default answer method, longer whispers meant a
lower score too. Along with that, streaks were added to introduce more
variability.
Shareable quizzes were a fun implementation. A database object is generated
with a random id containing the exact settings and songs in the quiz.
Players can then share that link with anyone to challenge them on the exact
same quiz.
With 1.2 released, I posted an update on r/spotify and was pinned by the
mods!
After adding the ability for me to generate custom quizzes based on albums
and users, the quiz aspect of Whisperify was almost complete. So, I started
working on the other main plan I had for the project: Whisperify Analysis.
With so many users, Whisperify now has a large enough dataset to provide
interesting stats. Whisperify Analysis provides that insight through
plotting the Spotify audio features of different demographics. The data
includes users from all countries Spotify is available, 16 personalities,
all Spotify albums, and playlists. The latter two are done through wrapping
a sequence of Spotify API calls.
I chose to display it in a radar chart format and a dot plot format,
allowing users to choose their preferences. Radar charts are a very visually
pleasing way to compare data, although it can get cluttered. I added a
multi-radar layout to solve that.
With that done, I can now explore two of the most interesting Spotify
features to me. The first is the Spotify Year In Review, which provides
insight into your listening activity throughout the year.
Through Analysis, I want to allow all Spotify users to generate a Year In
Review image at any time. Using data from the Spotify API and some HTML
canvas magic, I was able to
recreate the Spotify duotone look, while also integrating
the user's audio features into the image.