Musiplectics (Musical Complexity Scoring)

Musical Complexity Scoring is my MS Thesis project at Virginia Tech. I began working on it in Spring of 2015 with guidance from Dr. Eli Tilevich. The idea of the project is to specify some difficulty values for various musical elements, such as notes, intervals, articulations, dynamics, tempo, and key signature. By analyzing the MusicXML representation of pieces of music, we can aggregate how often each musical element occurs, and by applying the specified difficulty values, we can objectively determine the overall difficulty or complexity of the piece. This work has practical benefits for music educators and performers that often need to assess and match the difficulty of a certain piece to their playing level.

Drs. Amy Gillick from the Music department at VT and R. Ben Knapp from the CS department and Institute for Creativity, Arts, and Technology at VT are also advising on this work as well as my MS committee.

Below you can find the abstract we submitted for the 2015 Interdisciplinary Research Day at VT (IRD'15) as well as links to related papers on the project and the current source code.

The currently active site for this work can be found here.

Abstract

An Objective Assessment of Musical Complexity: Translating Music Pedagogy’s Deep Insights with Novel Computing Paradigms

In the Western classical tradition, musicians play music from notated sheet music, called a score. When playing music from a score, a musician translates its visual symbols into sequences of instrument- specific physical motions. Hence, a music score’s overall complexity represents a sum of the mental and mechanical acuity required for its performance.

Musicians often debate and disagree about the relative complexity of music scores, while the ability to accurately assess a score's complexity is required for curricular recommendations, competition specifications, etc. Unfortunately, this non-trivial cognitive task depends solely on individual opinions, a process influenced by personal biases and lacking common criteria. Additionally, people buying sheet music face great uncertainty when determining whether unfamiliar music matches their playing ability. With combined expertise from the fields of Computer Science and Music Pedagogy, this project finally offers an objective solution to these debates.

At the technical level, this interdisciplinary research exploits a fundamental musical tenet that—for a given instrument—different notes, intervals, and key signatures represent dissimilar levels of difficulty, which vary depending on the performer's proficiency. Tempo, dynamics, and articulation also affect the overall difficulty. We have realized our approach as a two-phase process. First, music experts rank the relative difficulty of musical components for different playing proficiencies and instruments. Second, an automated algorithm applies this ranking to music scores and calculates their respective complexity. Once music experts agree upon the complexity ranking for a given level of proficiency, our approach automatically calculates a music score's relative difficulty. The results of this interdisciplinary research project will empower musicians to expeditiously assess a music score's suitability for the abilities of intended performers.

This project is the first attempt to create a systematic and objective approach to assessing the complexity of a music score. The approach leverages computing technologies to be able to automatically and accurately calculate the complexity of playing a music score on a given instrument. As a proof-of- concept of the approach, we have been developing an automated, Web-based application for music educators and performers. This interdisciplinary research creates novel computing paradigms that systematically translate deep insights of Music Pedagogy, benefiting a broad music audience. Although the end product of this research will largely benefit musicians, the created novel computing concepts and paradigms will enhance the state of the art in computing, being applicable to solving important problems in other domains.

Source Code

Github Source