The Bol Processor project: Rule-based representation of music (14/05/07)
The Bol Processor project originated in 1980 as a word processor facilitating the transcription of quasi-onomatopoeic syllables used as an oral notation system for Indian drumming. It grew up as an expert system mimicking the ability to compose variations on a musical theme or assess their acceptability. Pattern grammars (a subset of type-2 formal grammars) proved appropriate for modelling the musical system under study. In 1989 a numeric-symbolic learning device was developed for inferring grammars from examples. The next implementation (BP2) addressed the issue of music composition in the MIDI and Csound environments of electronic music. The new challenge was to deal with superimposed sequences of events (polyphony) within the framework of text-oriented rewriting systems. This was achieved by means of polymetric representation. In a classical electronic music environment, musical works are represented on scores analogous to Western staff notation. Thus, human and machines rely on ‘rules of interpretation’ for the actual performance. The polymetric representation makes it possible to produce sophisticated time-patterns from information comprehensively imbedded in compositional rules, thereby maintaining the consistency of interpretation. This is a major discovery both for music, as ‘natural’ phrasing is no longer achieved by randomness, and speech analysis/synthesis in which (suprasegmental) prosodic features are annotated on multiple layers. Producing the actual performance requires additional information which the Bol Processor encapsulates in metrical/topological properties of ‘sound-object prototypes’. A time-setting algorithm modifies sound-objects taking into account physical timing and their adjacent sound-objects, much in a similar way human speakers modify the articulatory properties of speech sounds with respect to the speaking rate and influence of adjacent segments (coarticulation). This presentation will be supported by musical examples produced by BP2. Recently the project has been open-sourced by Sourceforge with the help of Anthony Kozar.