====== Sheet Music Analysis====== * Sheet music analysis with [[basics1|music21: Basics]] and [[advanced1|Advanced]] * Sheet music with the dem [[en:Interaktive Musikanalyse| Interactive Music Analysis Tool (I-MaT)]] * Sheet music with [[camat|CAMAT (Computer-aided Music Analysis Tool): Basics]] and [[advanced_camat|advanced]] 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. [[tutorials|Here]] you can find a list of all tutorials created in project course. ====The Tools==== You can choose one of the following computerized approaches to score analysis: **1. [[en:basics1|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 **[[en:Interaktive Musikanalyse|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. [[en:camat|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: ==== Why do we analyze music?==== 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. ==== Score files and score editors==== 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// ([[http://esac-data.org|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). ALTDEU 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. [[en:musicxml|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 [[en:musicxml|MusicXML-Tutorial]]). The format uses the principle of //Extendable Markup Languages// that is the basis for the freely available [[https://musescore.org/en|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 -[[en:datenbank|Score Database]] have the uncompressed MusicXML format. ==== Computer tools for note analysis==== 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: * [[https://www.humdrum.org|Humdrum Toolkit]] (C++) bei David Huron, Ohio State University * [[https://www.jyu.fi/hytk/fi/laitokset/mutku/en/research/materials/miditoolbox|MIDI-Toolbox]] (Matlab) bey Petri Toiviainen and Tuomas Eerola, University of Jyväskylä * [[https://web.mit.edu/music21/doc|music21]] (Python) bey Michael Cuthbert, MIT Boston * [[http://jmir.sourceforge.net|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. [[en:music21|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.