The purpose of research in computer-assisted composition (CAC) is to study and design models and computer techniques adapted to the creative process, incorporating paradigms for calculations as well as musical interactions and representations. This approach favors symbolic orientation using programming languages for artistic creation and processing harmonic, temporal, and rhythmic data in addition to other aspects that come into play in the compositional process. Our work in this domain is articulated primarily around the OpenMusic environment, a visual programming language based on Common Lisp and dedicated to musical composition. Contemporary music composers have used this environment for the past 15 years. Today, is regarded as one of the principle references in computer-assisted composition and has been downloaded by several thousand users from around the globe.
OpenMusic (OM) is a visual programming environment for composition or musical analysis assisted by computer. OM offers users a range of interconnected modules associated with specific functions, making up patches that enable the creation or transformation of musical data structures. OM also offers several editors to manipulate these data in addition to libraries in specialized sound analysis and synthesis, mathematical models, the resolution of constraint problems, etc. Unique interfaces like the maquette editor let users construct structures that include functional and temporal relationships among musical objects. OpenMusic is used by a large number of composers and musicologists; it is taught in all major computer-music centers and several universities worldwide.
Recently, a new calculation and programming paradigm was suggested for the OpenMusic environment, combining the existing demand-driven approach with a reactive approach inspired by event-driven, interactive real-time systems. The activation of reactive channels in visual programs increases the possibilities for interaction in a CAC environment: an event—a change or an action made by a user—made in a program or in the data it is made from, produce a series of reactions leading to an update (reevaluation). An event can also come from an outside source (typically, a MIDI port or an open UDP and attached to an element of the visual program). Two-way communication can be established between the visual programs and exterior applications or systems. The CAC environment finds itself inserted in the temporality of a larger system, potentially governed by events and interactions produced by or in this system. This temporality could be that of the compositional process, or that of the performance. The expressive wealth of CAC environments is largely found in the combinations it enables between temporal and functional relationships within musical structures. In traditional “off line” work, the processes of calculating and the execution of musical structures take place in distinct phases and temporalities. Here, we study interactive situations where the sequencing of musical events may depend on, or interact with generative processes put in place in a specific compositional or performance situation. A new architecture was defined with this objective in mind, connecting musical structures produced in a CAC environment with the sequencing structure. This architecture employs a hierarchical representation of musical objects that interact with their conversion by sequencing events.
Different prototypes for the sequence kernel were created for this architecture. These prototypes made it possible to integrate the idea of a dynamic sequencer in the OpenMusic environment, as well as the modification and generation of musical data "on the fly" during the performance of a score. The different models and optimizations, specified for each prototype make them more or less adapted for different cases and musical situations: static scores, static material with dynamic sequencing, and entirely dynamic material…. The creation of a unifying model is one of the medium-term goals in this project.
IRCAM's Team: Musical Representations.