Integrating Constraints and Concurrent Objects in MusicalApplications: A Calculus and its Visual Language (2001)
We propose { PiCO}, a calculus integrating concurrent objects and constraints, as a base for music composition tools. In contrast with calculi such as NiehrenMueller:Free, milner.parrow.ea:calculus-mobile or TyCO vasconcelos:typed-concurrent, both constraints and objects are primitive notions in { PiCO}. In { PiCO} a base object model is extended with constraints by orthogonally adding the notion of constraint system found in the ρ-calculus OzCalculus. Concurrent processes make use of a constraint store to synchronize communications either via the ask and tell operations of the constraint model or the standard message-passing mechanism of the object model. A message delegation mechanism built into the calculus allows encoding of general forms of inheritance. This paper includes encodings in { PiCO} of the concepts of class and sub-class. These allow us to represent complex partially defined objects such as musical structures in a compact way. We illustrate the transparent interaction of constraints and objects by a musical example involving harmonic and temporal relations. The relationship between Cordial, a visual language for music composition applications, and its underlying model { PiCO} is described.