Explore and discover popular music by location. Discover new local artists and the areas around the world an artist, or song is popular. Sonosphere aggregates songs and user's locations from SoundCloud and Hype Machine. Users can enter a location and SonoSphere will generate a playlist based off the most popular songs at the provided location. When a new song is played, the interactive 3D globe is reloaded with the locations around the world where the song has been favorited.

Sonosphere is available at this website, but is currently static because the database is too large to host without funding.

How it works

I built the website using the Python Flask framework with three.js to generate the globe and mongoDB to provide the data. I have done previous work in three.js, so the globe was fairly easy to implement, but it was exciting to get to work with MongoDB and Flask for the first time.

Sonosphere runs off a threaded web crawler that I developed in python. It has currently crawled over 700,000 songs, 850,000 users, and 29 million favorites on Hype Machine. In addition it has crawled on SoundCloud over 2.5 million users, 13 million songs, and 155 million favorites. Each favorite contains a song title/artist, username, time stamp, and the location in latitude and longitude where the user favorited the song.

Problems tackled

The crawler posed a very complex big data problem because I needed to aggregate thousands of users and songs, while efficiently updating the users and songs already stored in the database to keep the website running in real time. I used futures, a python threading library in order to spawn separate processing pools for crawling users and songs. The Hype Machine and SoundCloud api limit the number of responses, so I used threading to speed up the request and processing. The crawler proved to be very efficient and has processed all of Hype Machine's music library.

This visualization displays over 700,000 songs from the database organized by the artist with the most number of song favorites. I created this visualization using Tableau and the data is encoded using the width of the circle representing the number of favorites, and the color representing the artist. Looking at the organized table on Tableau, it is clear that the artist with the most number of over all favorites is Ellie Golding, but this is including remixed songs.

The following videos are working versions of location based music discovery using Tableau to create a real time visualization of popular music at the provided location.


Latest Work