PWGLConstraints is a general purpose constraint-based language with a strong emphasis in music related search problems. PWGLConstraints is written in Common Lisp. When using it we do not formulate stepwise algorithms, but define a search-space and produce systematically potential results from it. Typically we are not interested in all possible results, but filter (or, rather, constrain) these with the help of rules describing an acceptable solution.
The two main components of our constraint-based system are:
Figure 1 shows a PMC search problem where the aim is to find all possible chromatic 12-note chords that contain only perfect fourths or tritones between adjacent pitches.
In Figure 2 we see a complex Score-PMC search problem realized by Magnus Lindberg. Here the rhythmic structure of a search problem is prepared in advance in a standard PWGL score-editor. This input score is given as an argument to the search engine. The search, in turn, aims at filling the input score with pitch information according to the given rules.
Our final example demonstrates how Score-PMC can be used as a kind of textural “analysis/re-synthesis” tool. A musical excerpt is analyzed by the user and the rhythmical and textural features are converted to Score-PMC rules. After this Score-PMC is run in order to reproduce - or “re-synthesize” - the original musical texture. Typically the result is not an exact replicate of the original. Figure 3 shows one result using seven textural rules (the original musical excerpt comes from the first part of György Ligeti’s “Ten pieces for wind quintet”).