>> Download and try it yourself
Artist Statement
StarChart is a piece that aims to create an organic, immersive data-exploration experience that sheds preconceived notions of static data representation, which are so often exemplified by lifeless spreadsheets and tables. Boring pieces of itunes data are recontextualized to create a beautiful and individual star chart, making the data not only specific to the user, but also spontaneously generated for the user. This is a reflection of how each person is individual and unique; hence the need for individualized and unique data representations.
Music data was chosen for this visualization because music says a lot about one's character, and for many people it is a significant part of their identity. The star chart aesthetic hints at the many ways in which music moves and inspires us. For some people, certain songs inspire them to aim for something more, and to want or appreciate something beautiful in their lives. So often, music and song serve as points of introspection and reflection, things that are both quintessential parts of the archetypal 'laying on your back, looking up at the stars' experience that inspired the look for this piece. From antiquity to modernity, the night sky has been a source of wonder, beauty, and philosophical musings-- all things that are part of any music-listening experience.
The personalized nature of the piece, coupled with the star chart aesthetic, hints at the inspirational and beautiful nature of how music infuses our lives in specific and individual ways, so often inspiring and encouraging our dreams, hopes, and goals in life.
Connection to Class Material
My piece took inspiration from a number of artists; Golan Levin's Secret Life of Numbers, Jer Thorp's Just Landed , and Ben Fry's Linkology.
Golan Levin's piece was a particular source of inspiration because he took static and seemingly lifeless data (the popularity of integers zero to one million, how much drier can one get?) and through thoughtful visualization, revealed amazing patterns in an amount of data so overwhelming, that a simple static bar graph would have been suffocating to the eye and downright impossible to identify patterns with. I took inspiration from his intent of revealing patterns and trends through dynamic interaction, something I tried to emulate with my piece. The almost scientific data 'viewer' that he includes on the left side of his program (that contains information like number selected and number popularity) is also something I took inspiration from; for in addition to meaningful visuals, I included a more standard annotation of information to allow the user to verify his or her assertions/connections when it came to interpreting the visualization of song patters and trends.
Both Jer Thorp and Ben Fry's pieces were inspirational to me because they both mined and parsed non-static data (twitter and the web, respectively). Although my piece works off of a static xml file right now, the future intent is to have the program dynamically locate and mine itunes xml files, so that it is a live and up-to-date representation of a person's listening trends.
More importantly than that, however, Thorp and Fry's pieces both communicated vast amounts of data by specifically pointing out connections between data. One could say that the connections between the data points was even more important than the data points themselves, and was perhaps the main point of the work. Thorp analyzed where individuals were flying to and from, but instead of merely labelling point A and point B on a world map, he literally drew out the connection for the user so that these relations are immediately made apparent. Ben Fry's Linkology is purely based on connections between popular blog sites and how different blogs link between themselves. With my piece, making connections between data points reveals vast amounts of patterns and trends. Even the lack of patterns and connections represents important data: that that particular user has such a diverse and scattered music taste that he or she does not stick to any one particular artist for music listening. Or, a simpler explanation: that particular user barely uses his/her itunes library or has a small collection of songs to being with.
Synopsis and Technical Information
Synopsis
StarChart is a data visualization of itunes Library data that creates personalized and spontaneous star charts of an individual's music listening habits through the use of song name, artist, album, and play count data. Each song is represented by a star, and stars can be interacted with by scrolling over them. Scrolling over a star will reveal that star's song name, artist, and album data. By toggling between three modes (ARTIST, ALBUM, and MOST PLAYED), the user can choose to view the connections between that song and all other songs by the same artist (ARTIST mode), view connections between that song and all other songs in that album (ALBUM mode), and lastly can view the connections between the top five played songs in the library (MOST PLAYED mode). For each song, its data is displayed beside it when it is hovered over, and also appears in a console at the bottom of the screen. Each star is randomly assigned a name, based on the formula of:
"The" + song's artist name + randomly selected suffix + randomly selected designation e.g. a star that represented a song by Disturbed could be called: The Disturbedealis Cluster, a song by Metallica could be: The Metallicalus Centurai, et cetera.
The 'brighter' or larger the star, the more times that song has been played. This allows one, through a little bit of exploration, to quickly discover music-listening trends and patterns in a interactive and engaging way. Patterns emerge in the data that are not quickly made apparent in simple 'table and list' formations of data that are so common to media players and music libraries today. Many connections between songs denote a liking for a particular artist, whereas toggling between ARTIST and ALBUM modes will reveal the extent of a user's love for a particular artist. Does this user listen to just one album by an artist, or do they listen to the entire discography? Do they only listen to a small selection of their songs, or do they listen to all equally? These patterns are all reveal through thoughtful navigation of the star chart interface.
Technical Data
As it stands right now, the program works through use of an XMLElement, which is mined for data. In future iterations of this project, I would like to make an application that can locate an itunes library xml file on its own and grab the data from there, so that anyone could download and use this application without having to worry about finding and placing their xml files in the data folder of the application.
1) First, the data is collected.
Through the use of loops, the data from the itunes library xml file is mined and parsed (e.g. play count data comes in as a string; it is converted to a float before storage) and stored into arrayLists. If there is 'null' or incomplete data for any song, it is replaced with the string "data unknown" so that no nullPointerExceptions will occur within the program. The data pieces for each song are stored into Song objects, which include their own title, artist, album, and playcount data, x and y position, 'hover' booleans, randomly assigned star names, text, fade in/out effects, and glow effects.
2) Then, the data is displayed.
For each Song object in the songlist array, the Songs (or stars) are displayed. Checks occur that draw lines/make connections between similar songs and albums, and KeyPressed functionality toggles between view modes to make them visible. The songs that are played the most are also found and connections between them are made in order of highest to lowest. In this section, distance checks between mouse and star position are made to determine which star is being hovered over.