Evan Mitchell and Merissa Tan
John David N. Dionisio, PhD
Loyola Marymount University
The traditional system of music notation that we know today has been used for centuries by musicians across the West; however, while it is an efficient and reproducible rendering of musical information, it is difficult to understand without training. In our research, we identified alternative ways to visualize music so that musical patterns which are not apparent in traditional notation can be easily recognized by non-musicians. To implement these alternative visualizations, we developed a web application that allows users to upload music in the form of a MIDI file. A server-side Python script utilizes the py_midicsv library to convert the MIDI file to a usable JSON format. Client-side JavaScript then uses the three.js library to represent the musical notes as 3-D shapes in the browser. Each MIDI track is represented by a different color, allowing users to examine each instrument's part individually. At the same time, these tracks are overlaid, giving users the opportunity to understand the work as a whole and easily identify common themes in different parts. In addition, the website utilizes the soundfont-player library to allow users to listen to the music they are viewing. We hope that our visualization system offers a new, insightful, and interesting way to look at music.
Sample MIDI files were obtained from MuseScore's OpenScore initiative.
midi_process.py is based on Peter Jonas's midicsv-process.