Music21 is an open source Python toolkit being developed at MIT by Professor Michael Cuthbert. It assists scholars and musicologists worldwide to analyze symbolic music. I first learned of the project during orientation as a freshman, and I was immediately captivated - two of my favorite things, computer science and music, were being combined in such a fascinating and intriguing way. A few weeks later, I had enrolled in a UROP with Professor Cuthbert. A UROP stands for "Undergraduate Research Opportunity" and is a program for undergraduates to engage in research on campus.
Although I had little python programming experience and even less knowledge of music theory, Professor Cuthbert was eager to mentor me. I also collaborated with other students, especially Lars Johnson and Jose Cabal-Ugaz, learning both technical and teamwork skills critical to software development.
During the year I contributed music21, I worked on a number of features. I began by learning how to use the toolkit, and what better way than to conduct a small research project of my own. Under Professor Cuthbert's guidance, I worked to analyze chord progressions of modern pop music. I then implemented support for Chord Symbols, which allows users to analyze in more detail music encoded as lead-sheets. I also implemented a simple textual music parser and learned to run music21 analysis methods over Amazon Web Services using Elastic Map Reduce and mrjob.
It was through music21 that I experienced my first hack weekend - I enjoyed Boston Music HackDay 2011 where fellow MIT students and I worked to develop a web-based application with music21. By the end of the weekend we had built a mini tool that allowed students to compose music, write triads, and complete music theory exercises and receive instant feedback regarding their work. It was in many ways the beginnings of a much longer, more involved project to develop tools to make music21 useful in a music theory classroom setting. In Spring of 2011 I worked with Lars Johnson to develop a suite of tools to facilitate music theory analysis for this purpose.
During the year I contributed to Music21, I had phenomenal opportunities to join Professor Cuthbert and my student colleagues to present our work. I am extremely grateful to Professor Cuthbert for including me on these many opportunities. By attending conferences, publishing papers, and presenting our work I developed a deeper understanding of academia and the fascinating domain of digital humanities.
During sophomore year I no longer had time to contribute to music21. I remained an avid supporter of the project and enjoyed learning about the rapid progress being made. To my pleasure, however, during the summer before my senior year Professor Cuthbert invited me to re-engage with music21 in a new and exciting way - as a TA for the music course he was teaching that relied heavily on music21 to generate and check psets digitally. Although my responsibilities as a TA were entirely non-technical, I was impressed to see in detail the tremendous development the music21 project had undergone since I stopped contributing. Students in the course absolutely loved having the ability to work through material online, and receive instant feedback. It was clear that students were learning the material faster and more thoroughly thanks to the digital tools music21 provided. Being a TA for the course was one of the most fulfilling jobs I've held, and I am certainly very grateful to Professor Cuthbert for the opportunity.