Anders, T., E. Miranda (2011). A Computational Model for Rule-Based Microtonal Music Theories and Composition. Perspectives of New Music. 48(2).
This paper presents a computational model for microtonal music theories and composition based on the constraint programming paradigm. The fundamental layer of this model is its pitch representation, which introduces variables for pitches, pitch classes, and (chord or scale) degrees, as well as their their dependencies. Constrainable representations for higher level pitch-related concepts such as chord and scale objects are defined. The model has been implemented in Strasheela, so that this model can be used together with other Strasheela feature (e.g., temporal score object hierarchies).
This paper demonstrates the proposed model in a number of case studies that implement microtonal theories of harmony, melody and counterpoint. These case studies also showed how the model supports various equal temperaments. We modeled a diatonic cadence in 12-tone equal temperament (12-TET); a 7-limit harmony progression in 31-TET and adaptive just intonation; a chord figuration of a chord from La Monte Young's The Well-Tuned Piano in 41-TET; and finally first a melody and and then harmonic counterpoint with Paul Erlich's static symmetrical major scale in 22-TET.
The presented model supports equal temperaments only; we are currently working on an extension for arbitrary regular temperaments including just intonation.
Anders, T., E. Miranda (2011). A Survey of Constraint Programming Systems for Modeling Music Theories and Composition. ACM Computing Surveys. 43(4).
Constraint programming is well suited for the computational modelling of music theories and composition: its declarative and modular approach shares similarities with the way music theory is traditionally expressed, namely by a set of rules which describe the intended result.
Various music theory disciplines have been modelled, including counterpoint, harmony, rhythm, form and instrumentation. Because modelling music theories `from scratch' is a complex task, generic music constraint programming systems have been proposed that predefine the required building blocks for modelling a range of music theories.
After introducing the field and its problems in general, this survey compares these generic systems according to a number of criteria such as the range of music theories these systems support.
Anders, T., E. Miranda (2010). Constraint Application with Higher-Order Programming for Modeling Music Theories. Computer Music Journal. 34(2).
This paper studies how compositional rules (constraints) are applied to the score when modelling composition or music theory with constraint programming. Our overall objective is to produce a highly generic system, where users can model a wide range of theories, including theories of rhythm, harmony, melody, counterpoint and form. Existing systems provide mechanisms that are convenient for specific cases, but lack generality and cannot be extended by users. For example, constraining notes from different voices in a polyphonic setting (e.g., with harmonic constraints) is inconvenient or even impossible in most systems.
We propose an approach which combines convenience with full user control by using higher-order constraint applicators. A constraint is a first-class function, while a constraint applicator is a higher-order function that traverses the score in order to apply a given constraint to variable sets. This text presents constraint applicators suitable for a many musical CSPs, and reproduces important mechanisms of existing systems. Most importantly, users can define their own constraint applicators with this approach.
Anders, T., E. Miranda (2009). Interfacing Manual and Machine Composition. Contemporary Music Review. 28(2), pp. 133–147.
Computer-aided composition (CAC) is situated somewhere in the middle between manual composition, and automated composition that is performed autonomously by a computer program. Computers cannot make aesthetic decisions on their own, they only follow orders. Aesthetic decisions are made by composers, both via the design of computer programs and by manually controlling these programs. The latter activity plays an important part in CAC. The composition process typically involves much emending and revising: changing how a computer program is controlled is easier and allows for a more intuitive way of working than changing the program itself. This paper argues that constraint programming is a particular suitable programming paradigm for flexibly interfacing manual and machine composition, and it presents techniques that demonstrate this flexibility.