In lieu of an abstract, here is a brief excerpt of the content:

  • PWMC, a Constraint-Solving System for Generating Music Scores
  • Örjan Sandred

This article outlines the design of the PatchWork Musical Constraint system (PWMC) for solving musical constraint-satisfaction problems. After a short introduction, the objectives and basic concepts of PWMC are presented; a short description of the system from the perspective of the user interface then follows. Next, the structure of the domain and how the user designs rules are explained in more detail. A patch example that summarizes some possibilities of the system is examined, and then the internal data representation is outlined. To conclude, we discuss a musical example.

Rule Formalization and Music

Using rules to explain music structures is not new. Music textbooks have used rules for several hundred years to clarify how pitches can be structured harmonically and melodically. Rules allow music theorists to break down a complex music description to simple sub-descriptions. Composers have also been attracted to rules in formalizing their methods of composition. Several Renaissance composers (e.g., Johannes Ockeghem, 1410–1497) used canon techniques to create complex relations among voices in polyphonic music. More modern examples can be found in serial music: The pitch row of a serial composition is a rule in itself.

Computers allow composers to experiment more deeply with how musical rules interact together. The first examples of using rules in computer music can be found in Lejaren Hiller and Leonard Isaacson’s Illiac Suite (1958). In the first, second, and third movements, rules were used to filter out an acceptable pitch structure from randomly generated pitches. (In the third movement, durations and dynamics were also generated.) Hiller and Isaacson relied on the Monte Carlo method, where the program generated values at random until one passed the screening rules.

Musical problems that are more complex need to be solved using a more systematic method than the Monte Carlo method, however. For this reason, several constraint-solving systems for music have been developed. A pioneering example from the early 1990s is the composition environment Carla (Courtot 1990). Another early example is the combination of Backtalk, an extension to Smalltalk, and MusES (Pachet and Roy 1995).

Contemporary Constraint Solvers in Music

Today, a few constraint-solving systems with builtin support for musical structures are available; three are mentioned here. The Situation system (Bonnet and Rueda 1999) is implemented inside the visual programming language OpenMusic (Assayag et al. 1999) and is specialized in assembling harmonic structures. Chord structures are searched for independently of rhythm. Situation also gives a limited support for building rhythmical structures (independently of pitch).

Score-PMC is based on the PMC constraint solver (Laurson 1996) and exists inside the visual programming language PWGL (Laurson, Kuuskankare, and Norilo 2009). Only the pitch structure can be constrained in Score-PMC; the rhythmic structure is always given by the user. Nevertheless, rules applied to the pitches can constrain relations between pitches and arbitrary aspects of the given rhythmical structure.

Strasheela (Anders 2007) is a musical constraint–solving system based on Oz, a powerful programming language for intelligent applications. The choice of Oz makes Strasheela the most efficient constraint-based music composition system of those listed here. At the same time, Strasheela uses a text-based syntax, and the user must have a deeper [End Page 8] knowledge of the programming language than in the other two systems. To do Strasheela justice, its full power is best demonstrated on highly complex constraint problems where rhythmic, contrapuntal, harmonic, and motivic structures are all simultaneously sought. Strasheela can solve musical constraint–satisfaction problems for any attribute of musical events.

There are also other options for composers who wish to use constraint-solving techniques. Some composers have used constraint solvers that do not come with support for music structures—for example, Screamer, an extension to Common Lisp (Siskind 1991). A quite different type of system is OMClouds (Truchet and Codognet 2004). This system relies on a heuristic search strategy, which makes it incompatible with the other systems discussed here.

PWMC: Objectives

PatchWork Musical Constraints (PWMC) is an extension to the visual programming language PWGL, an acronym for PatchWork OpenGL. The main objective of developing PWMC was to create a system that could solve constraint-satisfaction...

pdf

Share