The goal of The Evolution of Rock was to combine my interests in the fields of music, ecology, and computer science into an interactive, digital, phylogenetic tree of rock subgenres, in order to exemplify the multi-disciplinary approach of everything DCC.
Here is how I did it.
The Wikipedia list of rock subgenres has ~220 different genres listed, and due to time constraints there was no way I could complete a tree of all of them. I removed all of the subgenres that were mainly derived from punk or metal, because those two genres are both huge in their own rights. This left me with ~113 subgenres. From there I started research, but removed genres as I went either because they were too vague (Ex. Latino Rock), too obscure to classify well (Ex. Zuehl), or because they weren’t really rock at all (Ex. Big Beat). This left me with a nice, even 100.
With this final list of 100 subgenres, and a list of predetermined traits, I began the project.
First came the listening research. I went through each subgenre and wrote a casual origin blurb about it, primarily using Wikipedia as the source, listened to about 3 or so songs each from on average 5 bands that were referenced as being prime examples of the genre, and filled in the traits in my sheet on excel (see below). Each determined trait was an average of the listening research I did for that subgenre, and I made sure to listen to songs from the time in the band’s lifespan when it was a good example of the subgenre.
Upper left corner of listening researchA bit more listening research (of 100×32)
I then chose Rock ‘N’ Roll as my ancestor, and wrote out the traits possible as either ancestor traits, or variations (see table below). I then made a copy of my listening research, and changed the written traits into their a/v1/v2/v3/etc counterparts.
A portion of the ancestor/variation chart
The research converted into a/v1/v2/etc
From there I wrote a short program in Ruby that took the converted research, and returned how many traits each pair of genres have in common. I then copied those into a new excel sheet, and put that chart into another short Ruby program that sorted the pairs based on how similar they were.
Program to get the pair data
Portion of output from above code
Portion of chart made from the output
The code for sorting the pairs
Portion of sorted pairs
At this point I was ready to take advantage of the online resource of iTOL, which, when given a specific tree file, would create an editable digital phylogenetic tree.
This is the not-so-pretty file I gave it, and the very pretty tree it made.
The Newick file
The first draft
I then took the first draft, and proceeded to add the actual traits to it, which helped to increase the accuracy. Thankfully, my initial placement was accurate enough that many times the traits fell in clades I had previously created.
A few examples of messily adding traits
From there I made a new Newick file, and a new tree.
I was then able to use template files from iTOL to add the traits, and descriptions with pop-ups, to the tree, and so we have: The Evolution of Rock!
The traits (HTML) The descriptions (HTML) The final tree!!! Example description pop-upExample trait pop-up