Model and Language Introduction

Music Processing Suite (MPS) is a software system for advanced symbolic music processing. It is based on music models in which contextual relations of individual musical aspects are represented. Examples for modeled musical contexts are meter, tempo, rhythms, keys, hierarchical harmonic relations, pitches, scales, loudness and lyrics.

As an introductory example, the well-known motif of Beethoven’s Symphony No. 5 in C Minor, Op. 67 is presented in various representations supported by MPS. The most common representation is a score part:

An equivalent representation in MPS is a so called context layer model, in which meter, tempo, key, scale, scale degrees, pitches and loudness are represented as individual context layers:

The context layers demonstrated in this example are only a small subset of available context layer types in MPS. Refer to the other examples to explore context layers such as more complex harmonic contexts, lyrics or logical layers. It is even possible to define custom context layers.

In MPS, these time-based context layers can be represented in a compressed representation called context tree models. In these tree-based structures, it is possible to omit redundant information, resulting in an elegant and very concise music representation. A context tree model equivalent to the above time-based model looks like this:

The context tree contains an hierarchical arrangement of a time signature, the key C minor, a rhythm containing an eight rest (_8) followed by three eighth notes (8 8 8) and a half note (2), two pitch sequences containing zero-based scale degrees and a rhythmic modifier, which extends the last note of the contextually available rhythm by a half note. The tree structure specifies how the contexts are combined. Each leaf node of the tree is evaluated in context of all nodes “above it” (i.e. all contexts in the path from the root node (labeled composition) to the respective leaf node).

For example, the pitch information (pitches 4 4 4 2), the numbers representing zero-based scale degrees) is evaluated in the harmonic context C minor, which is given by the corresponding node (key Cm). In the process of compiling this context tree model to another representation (e.g. a score or context layer model, see above), the compiler determines a suitable scale (in this case a minor scale) matching the harmonic context. Of course, other scales could be specified by means of an explicit scale context node.

A crucial advantage of context tree models is that contextual constellations can be reused. In the shown model, this is achieved by defining a tree branching below the rhythm node. Each diverging branch inherits all the contextual information above the branching, effectively leading to sets of combined musical contexts at each leaf node of the tree. This is only one of many ways to avoid redundant information in context tree models.

Another important aspect is the modeling of higher-level composition techniques and how musical material is shaped in the course of a composition. Frequently, musical material is reused, modified and manipulated in musical terms. These processes are modeled in context tree models by means of so called context modifiers and control structures.

A context modifier is demonstrated in the previous example: Measures 3 and 4 are almost equivalent to measures 1 and 2 rhythmically, except for the last note, which is extended by a tied half note. Consequently, it is not required to specify the whole rhythm again, but can rather be expressed as a rhythmic extension of the already introduced rhythm.

Context tree models can also be represented using the domain-specific composition language of MPS named Musical Context Composition Language (MC2L). It has an simple syntax and features lots of musical contexts, modifiers and control structures. A powerful IDE with a suitable editor featuring syntax highlighting, outline view and automatic code completion supports the user during the creation of the composition model. A syntactical representation of the above model looks like this:

composition
{
    time 2/4, key Cm
    {
        rhythm _8 8 8 8 2
        {
            pitches 4 4 4 2
            pitches 3 3 3 1, rhythmicExtension 2
        }
    }
}

MPS supports the conversion between all presented music representation formats. For more details, see Transformations.

For more examples, please refer to the corresponding page on this website.