The main theme of this work is to visualize data. My initial idea is to use music as the source data set. In the past, there has already been many computational programming successfully visualizing music in real time, which mostly use the digital sound properties (for example, frequency, amplitude, speed, …).
This approach was able to create memorizing interactive graphics, however it can be used for every sound input, thus did not adequately address the nature of music. This function which I made have a more ‘analog’ approach. Musical elements, in this case, the notes, the chords, their position, arrangement and relationship are tools that composers used to create music. Therefore, if a graphic can visualize all that factors, the user can achieve a deeper understanding of the artist’s composing process, thus providing a different viewpoint for the user, from ‘audience’ to a kind of ‘musician’.
The challenge here is how to find the music data source that can provide all those factors. Fortunately, there is one spectacular music coding-based file type that was developed for sharing musical sheet: MusicXML. There are also various website that provide Free XML file. As a result, there are two steps that the function have to address:
- To extract musical variables from the XML file
- To visualize those variables effectively
Since the purpose of visualizing here is the ‘relationship’ between musical notes, I choose NetworkX as the suitable platform. Different types of network visualizing were experienced throughout the coding process, each has its own visual effect and provides different informative understanding from the musical piece.
The next development is to create a real-time graphic that can show the arrangement relationship of the notes. In order to do that, a programming platform providing particle movement is needed. Therefore, I use Turtle and combine the data analyst of the 5th assignment with time-based movement of the 3rd assignment. In this function, there are two works to do: (1) creating the musical instrument (that have unique notes and unique positions, just as a piano); and (2) creating the player movement that shows the musical progress from the first to the last note based on the music sheet.
In the ‘musical instrument’, each turtle will present a unique note in the musical sheet. As a result, after data extraction, the note list need to be filtered and re-organized. The position of each turtle will present the name and octave of its note, calculated from the XML data. The colour of each turtle will be based on the note type (or the duration of each note). The turtle ‘player’ will move between the notes, at the same time will create a network of its footprint, showing the relationship between the notes as in the musical sheet.
- Designer / Researcher
- MSc Digital Architecture and Design, University of Sheffield
- Jan 2018