Sheet Music Analysis

The modules, tutorials and software tools provided on these websites introduce various possibilities of computer-aided analysis of sheet music files.
The teaching units can be done in self-study or within courses. The duration of the lessons is approximately 4-6 hours or three sessions of 90-minute lectures with additional preparation, homework, and optional deepening. Here you can find a list of all tutorials created in project course.

You can choose one of the following computerized approaches to score analysis:

1. music21 is an extensive Python library for symbolic music representation and processing developed at MIT in Boston. From music21 some modules for visualization, statistical description, and motif search have been taken and prepared in tutorials using music examples. These tutorials developed within the Fellowship project can be executed as Jupyter Notebooks (in a browser). Only a rudimentary knowledge of Python command syntax is required, and this knowledge is provided in the tutorials. The scores are displayed within Jupyter Notebooks in the browser, if a score editor (for example MuseScore) has been installed. The installation of Anaconda or Miniconda and the project-specific Python environment (hfm_x_x.yml in the current version) is also a prerequisite.

2. The Interactive Music Analysis Tool (I-MaT) is based on the functionality of music21, but runs in an easy-to-use command window instead of a Jupyter Notebook in the browser. All results (graphs, tables) are displayed in external pop-up windows, sheet music in an external score editors (MuseScore).
Since the operation has been implemented as a simple, 'interactive' option selection, knowledge of computer commands or a programming language is not required. Therefore, the tool is ideally suited as a low-threshold and straightforward introduction to the possibilities of computer-aided music analysis with music21, without having to get involved in the command syntax of python and the functionality of Jupyter Notebooks.

3. CAMAT (Computer-aided Music Analysis Tool) is a tool developed within the Fellowship project whose tutorials are executed as Jupyter Notebooks (in the browser). Only rudimentary knowledge of the Python command syntax is required; this knowledge is provided within the tutorials.
CAMAT is based on a data structure developed within the project (pandas dataframe) which is used to prepare MusicXML files for flexible visualisation (multicolor piano roll display), for statistical analysis (including graphs and tables), and for motif search. Prerequisite is the installation of Anaconda or Miniconda and the project-specific Python environment (hfm_x_x.yml in the current version). The scores can be viewed and listened to in parallel in an external score editor (for example MuseScore).

But now to the question:

There are certainly various objectives for the analysis of music. However, the following two motivations are fundamental:

  • I want to discover and experience, to comprehend and understand something that is hidden to me at first hearing: How does a certain effect of the music come about? What is it that makes the music I hear beautiful or moving or exciting?
  • Or I want to illustrate or clarify something - especially when I want to convey and share my experience of the music with others.

Analysis as a discovery and descriptive approach to music always means making musical happenings explicit, and is thus a means for understanding and a prerequisite for communicating music.

There are a number of applications and objectives of musical analysis. Here are the probably most important:

  • Analysis of certain compositions: The special features of a particular piece of music are worked out analytically. On this basis, an interpretation of the piece can be made, for example with regard to its specific effects and meanings.
  • Stylistic analysis: The description of the peculiarities of a certain style in a temporally or regionally delimited area or of a personal style. Examples of individual compositions or performances that are typical of a particular style may be examined - or an attempt may be made to derive the style from an analysis of all (or as many as possible) compositions.
  • Historical and comparative perspective: How are different historical styles of music related to each other on a level of tonal design - and how do they differ from each other?

Today, the various procedures and approaches of music analysis can be extended by computer-aided methods of visualisation, statistical evaluation and targeted pattern search. This is what the teaching unit on musical analysis is about. The methodical extensions cannot and do not want to replace listening to the music and the examination of the music text in any case - but rather want to enrich and empirically back them up.

Today, digital sheet music is available in large numbers as pdf files, which can be displayed on screen and printed out with a printer. However, the musical information in these files cannot be read and processed by the computer. Computer-readable music files, on the other hand, are encoded in special score formats that can be edited in editors - simple text editors or specialized score editors. An early example of a computer-readable sheet music format is the Essen Associative Code (EsAC), which has been used to record folk music collections from around the world. The musical information can be viewed and edited with a simple text editor. Here is the Hildebrand song, the first example in the Essen Folk Song Collection. The coding of the melody (MEL) is easy to decipher: Numbers stand for tone steps (related to G = 1), the dashes for different tone lengths; spaces are bar lines (in 4/2 time).

 CUT[Das Hildebrandslied]
 REG[Europa, Mitteleuropa, Deutschland]
 KEY[A0001  04  G 4/2]
 MEL[1_  3b_3b_4_4_  5__5__
  0_5__5_  5_6_7b_5_  5__0_
  5_  5_6_7b_5_  6b__5__
  0_5_4_3b_  5_3b_3b__
  0_3b_3b_3b_  4_4_5__  5__0_
  5_  4_3b_3b_3b_  2__1__
  0_5_5_.4  3b__0_
  5_  6b_5_5_3b_  4__5__
  0_4_3b3b1_  1_-6_-7__  1__. //] >>
 FCT[Romanze, Ballade, Lied]

There are numerous other music file formats. Common ones are, for example, abc notation (.abc), MuseData (.mus), Lilypond (.py), kern (.krn) and MusicXML (.xml or in compressed form: .mxl or .musicxml). All mentioned formats can be converted to MusicXML files with the Python library music21. In contrast, commercial sheet music editors such as Finale or Sibelius have developed their own formats tailored only to these editors.

MusicXML (with the file extension .xml or .mxml) is one of the most widely used sheet music formats (see https://www.musicxml.com/, https://en.wikipedia.org/wiki/MusicXML and MusicXML-Tutorial). The format uses the principle of Extendable Markup Languages that is the basis for the freely available MuseScore score editor but can also be read and saved by most commercial score editors. Only MusicXML files are used in the lessons as well as MuseScore as a tool for viewing and editing the sheet music. All score files in the project -Score Database have the uncompressed MusicXML format.

Since the 1990s, several software tools have been developed that can both read sheet music files and analyze them using programmed scripts. The most important are: * Humdrum Toolkit (C++) bei David Huron, Ohio State University

  • MIDI-Toolbox (Matlab) bey Petri Toiviainen and Tuomas Eerola, University of Jyväskylä
  • music21 (Python) bey Michael Cuthbert, MIT Boston
  • jSymbolic (Java), part of the Single Interface for Music Score Searching and Analysis project (SIMSSA) project.

While a C++ environment (for Humdrum) is difficult to install under Windows for computer laymen and the MIDI toolbox requires an (expensive) Matlab license, music21 from MIT in Boston can be installed free of charge as a library in the Python programming language. For this reason, music21 was chosen for this project. music21 commands can be conveniently viewed, executed and edited in the tutorials using so-called Jupyter notebooks.

In the course of designing the tutorials, however, it became apparent that music21's analysis commands have certain deficiencies in their programming. For example, in statistical queries, some commands do not properly process polyphonic passages, chords, and rest. However, despite these minor shortcomings, the Jupyter Notebooks with music21 give a good impression of the possibilities of computer-aided note analysis. Here is a compilation of the most important basic music21 commands used in the tutorials.

Because of the shortcomings of music21, the Fellowship project developed the CAMAT tool, which reads MusicXML files directly using a custom xml parser. CAMAT includes Python libraries like pandas and newly developed scripts for visualization, statistical analysis and pattern search.

  • en/noten.txt
  • Zuletzt geändert: 2023/08/23 18:10
  • von sebastiane