A generic music constraint system makes the definition of musical CSPs more easy than it would be in a general constraint system. Therefore, musicians are interested in such a system.
At the same time, a generic music constraint system should not restrict its user to specific CSP classes. For instance, composers usually prefer to make compositional decisions themselves without being restricted by some tool such as a composition system what they can express musically. The user of an ideal generic music constraint system (in the sense of a most generic system) can formalise any music theory conceivable which can be stated by a set of rules. The system will create music which complies this theory.
Such an ideal system allows to represent arbitrary aspects of the music by variables which can be undetermined and constrained in the problem definition. Example aspects which can be expressed by variables in such a system include the rhythmical structure of the music, its texture (e.g. the number of notes at any time), the pitch structure, instrumentation, or sound synthesis details (e.g. envelopes for various parameters). In an extreme case, the set of solutions for a single CSP contains any conceivable score.
To allow for arbitrary musical CSPs, an ideal system provides access to arbitrary musical information required for the definition and application of compositional rules. For example, traditional counterpoint rules require much information which can only be deduced from the information explicitly represented in the representation traditionally used for contrapuntal composition (i.e. common music notation). For instance, a common contrapuntual rule permits dissonant note pitches in situations where a number of conditions is met which involve various musical aspects: a note may be dissonant in case it is a passing note on an easy beat and below a certain duration. This rule thus requires information on the harmonic aspect deduced from the pitches of simultaneous notes (whether a certain note is dissonant), information on the melodic aspect deduced from the pitches of notes in the same voice (whether this note is a passing note), information on the metric aspect deduced from the position of the note in a measure (whether this note is on an easy beat), and rhythmical information (the note's duration).
Existing generic music constraint systems, however, are designed to cover specific ranges of musical CSPs. These systems support the formalisation of certain music theory cases very well, but other theories are hard or even impossible to define. For example, OMRC is designed solely for solving rhythmical CSPs, and Situation is best suited for harmonic CSPs. PWConstraints's subsystem score-PMC is designed to solve polyphonic CSPs, but score-PMC requires a fully determined rhythmical structure in the problem definition (i.e. only note pitches can be constrained).
Existing systems are programming systems and indeed allow a user to express a considerable number of musical CSPs: the user expresses a compositional task in the programming language used by the system. For example, most systems allow the user to freely define a compositional rule as a modular subprogram which makes use of arbitrarily complex expressions.
Still, only certain aspects of a musical CSP can be programmed. Other aspects can not be changed or the system only offers a limited set of selectable options. For example, the music representations of many existing systems predefine common musical concepts such as notes, pitches and durations which greatly simplifies the definition of many musical CSPs. However, the user has only limited influence on the form of this representation and in effect the representation is only well suited for a limited set of problems.
In particular, the representations of existing systems limit what explicit score information can be stored and what derived information can be accessed. For example, many systems provide a sequential music representation and primarily support deriving information from sets of score object which are positionally related (e.g. allow to access neighbouring notes or chords in a sequence). Access to other derived information (e.g. whether a note is on an easy beat, or whether a note is dissonant with respect to the chord expressed by its surrounding notes in a polyphonic texture) is restricted - which clearly affects the set of CSPs which can be defined in these systems.
In addition, the search strategy of existing systems is usually optimised for specific classes of musical CSPs. In effect, systems sometimes even purposefully restrict their users to CSPs which they can solve efficiently. For instance, score-PMC does not allow to constrain the temporal structure of music, because a determined temporal structure is required by the polyphonic music search approach of score-PMC to compute an efficient static search order [Laurson, 1996]. Similarily, the search strategy of Situation (which performs a consistency enforcing technique to distinctly reduce the search space) is optimised for its specific music representation format [Rueda et al., 1998].
The present research proposes a highly generic music constraint system. This system allows to define and solve musical CSPs which were virtually impossible in previous systems. At the same time, this system performs reasonably efficient - even at problems which were hard to solve in previous systems due to their computational complexity (e.g. polyphonic CSPs in which both the rhythmical structure and the pitch structure is constrained). The design of the system is outlined in the subsequent Sec. 3.