In today’s world, we are surrounded by modular designs. The idea of a modular design, as Dr. Irvine states, is that Modularity allows us to manage a larger and more whole complex structure, by diving up it’s functions into separate, interconnected components, layers and subprocesses. This process helps us to understand “the big picture” of how something works, and we do that by looking at the encapsulation boundaries (Langois)
For this week’s post, I wanted to look into Spotify’s Layout and Interface and see how this app works. To me, Spotify is like a digital library of music. You can listen to the music on your phone, computer, tablet. Once you download the app, you open an account and you’re ready to listen to your favorite songs. Spotify let’s you browse music by artist, album, song name and genre. You can locate artists and song through keyword searches. Most internet music players have some drawbacks when it comes to streaming the audio. If your internet connection is poor, then you will experience pauses, the song will stop playing and that is not a pleasant experience. On the other hand, Spotify uses a peer-to-peer (P2P) network to stream audio. As explained on the Spotify community support page, when you select a song, Spotify’s computers immediately begin sending the data to your computer. Simultaneously, it looks for other Spotify users who have the tune on their computers. When it finds the track, it commands the Spotify software to send bits of the song to your computer, all of which takes a load off of Spotify’s central servers and Internet connection. Another thing that happens is that, when you listen to a song, it stores it on your hard drive, which means your computer plays the song instead of Spotify.
Another interesting issue to discuss are the algorithms that Spotify engineers use to shuffle and discover the music that you like. There are mainly two algorithms that are used. The Floyd-Steinberg dithering algorithm and the Fisher Yates Shuffle algorithm. Fisher-Yates shuffle algorithm is used to generate a perfectly random shuffling of a playlist.
This picture helps us to better understand how the algorithm works. Let’s say that we want to shuffle songs from 5 different artists, where each of them has a certain number of songs. This algorithms groups the songs into clusters of the same artist, and spreads them equally throughout the playlist, so each song appears roughly every 25% of the length of the playlist.
When it comes to interfaces, Spotify let’s you synchronize the playlists, so you can listen to them from your phone or your desktop. And this is done automatically. Except songs and albums, Spotify has incorporated podcasts and videos as part of their platform. And after a recent deal between Facebook and Spotify, now you can share the playlists and songs that you listen to, with your friends on Facebook, so we see a collaboration between different platforms.
After all, even though there is a lot going on in the background, where the DNS servers handle all the traffic, and the algorithms help to choose the right songs, it seems like Spotifu has an easy to use interface and layout for the user.
Irvine, Martin Introduction to Modularity and Abstraction Layers
Langlois, Richard “Modularity in Technology and Organization.” Journal of Economic Behavior & Organization 49, no. 1 (September 2002): 19-37.
Poláček, Lucas December 09, 2014. How to shuffle songs? https://labs.spotify.com/2014/02/28/how-to-shuffle-songs/
Chandler, Nathan October 03,2011 How Spotify Works. http://electronics.howstuffworks.com/gadgets/audio-music/spotify4.htm