Making of EoR

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.
Listenign research 1 Upper left corner of listening researchlistening research 2A 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.
traitsA portion of the ancestor/variation chart
traits2The 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.
compareProgram to get the pair data
compare resultsPortion of output from above code
compare chartPortion of chart made from the output
sortThe code for sorting the pairs
sort resultsPortion of sorted pairs


I then drew out a draft phylogenetic tree, which was actually really fun, starting with the most related pairs and working backwards. I ignored specific traits for the time being.
20160315_173928 20160315_183702 20160316_155716 20160316_162351 20160316_174818Tree construction


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.
newickThe Newick file
first treeThe 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.
20160408_145807 20160408_164425 20160408_160059A 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!
traitpopups The traits (HTML)Descriptions The descriptions (HTML)Tree Screenshot The final tree!!!Tree Screenshot Genre Example description pop-upTree Screenshot TraitExample trait pop-up


Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>