DataVis2012/Projects/Schapiro
My Projects
Visualizing Music Hype and Music Tour Correlations
I will be mapping out how many people listen to an artist in various metros compared to the most recent tour route.
Step 1: Acquiring Data
The band tour data will be loaded dynamically, using one of the following datasources: Last.fm Eventful Songkick JamBase
I'll need to test and see which produces the most accurate and extensive data.
I think my best bet for geo hyped music data is to scrape the data myself. I have set up a server script to scrape from the Last.fm API. I grab the weekly hyped artists charts for 46 US cities (http://bit.ly/wBWTk7). The two API calls will be geo.getMetroArtistChart and geo.getMetroHypeArtistChart (http://bit.ly/yoYlvF). The results will be stored in a mySQL database.
Step 2: Filtering Data
The subset of the artists I use will be decided based on the richness of the data that is scraped. Hopefully we'll see something interesting here!
I will take the top 5 artists for each city from each week and put into JSON as such:
Rank_data = { // obj containing cities Boston: [ // each city is array of weeks [ // each week has array of artist rank objs { artist: 'Beyonce', listeners: 501 }, { artist: 'Arcade Fire', listeners: 200 }, ... ], [ ... ] ] } Weeks = [ // use FROM_UNIXTIME over full set of weeks '2009-02-01', '2009-02-08', ... ]
To keep clutter minimum, I think I'll use this subset of cities:
- Boston
- Austin
- Philadelphia
- Nashville
- San Francisco
- Miami
- New York
Step 3: Rendering Data
My current design idea is a map of the US (or world) with circles of differing sizes compared to how popular an artist is, overlaced with a connecting line betweens cities traveled to (in order) in the upcoming/previous tour
Version 1: Timecloud
UPDATE: After discussing with Silva, the new plan to a slider to deal with time, and as you slide along, tag clouds appear over the various cities of the most popular artists. There is also the option to filter these artists by genre, etc.
I imagine the final result looking something like: http://www.nytimes.com/interactive/2009/02/02/sports/20090202_superbowl_twitter.html
I may be able to do this by modifying https://github.com/stef/timecloud to place tag clouds atop a static image of the United States or a dynamic image such as: http://www.openstreetmap.org/
Update: MOCKUP at http://theitt.com/InternalProjects/DataViz/tagcloud
Conclusion: This doesn't give very much useful information. Time to go back to my original idea
Version 2: Google Maps
// rewrite API to take band name and year and find out total number of listeners in each city
// getting past events // then put them on the map http://ws.audioscrobbler.com/2.0/?method=artist.getpastevents&format=json&artist=phish&api_key=46d8e5af527082f81cd3e592d5d832a8&limit=300
// numbered icons http://code.google.com/p/google-maps-icons/wiki/NumericIcons
// circle overlays (for # of listeners in city) https://developers.google.com/maps/documentation/javascript/reference#MarkerShape
FINISHED: http://theitt.com/InternalProjects/DataViz/tour/ Source code: https://github.com/yono38/Listeners-Concerts-Corr