We wanted to build something fun, yet entirely useless. Not everything in life has to have a deep meaning.

What it does

This is an Android application that mimics a disco/club, with a spinning disco ball, flashing lights, a hype dj and (of course) the avatars hitting the dance floor. These appearance and number of these avatars can be changed according to what we want, though we rolled with a cool squirming Squidward for now.

We made use of the Spotify SDK API to allow our bored user to launch and authenticate their Spotify accounts from the application, and to help us monitor the current song being played. From there, we made a call to the Spotify Web API to gather information on this song's features - is it energetic? Lively? Danceable? These are some characteristics of the song that Spotify gives us.

With these characteristics, we classify the songs into different moods and finetune the appearance of the virtual disco accordingly. We also flash toast messages depending on the mood of the song. For example, if the song is a sad one, rain starts falling. (Yes, we summon rain). If the song is a really sad one, the rain falls and the screen darkens, with a toast message of ".... You okay bro?" adding a very nice touch. A normal song just gets the normal layout with no special effects (except for the coordinated squirming Squidwards). A happy song has the entire background change colour every 5 seconds according to standard disco lighting. A hyper song gets these same lighting effects, but with the colour change occurring even more rapidly, as well as some crazy shooting stars flying across the screen.

How I built it

We used Android Studio as well as Spotify for Developers.

Challenges I ran into

It was tough making use of the Web API as it wasn't as integrated with Android as the Spotify SDK API. We had to scrap many cool ideas of having music synchronising to the exact beat of the current song playing, too. (And this was also our first time writing an application for Android...)

What I learned

  • Android Studio
  • UI effects and callbacks

What's next for Spotify Disco

Connecting with other users. Syncing not only to the audio but also movements of user. Customisation of dancing characters.

Share this project: