The western culture has always maintained a close relationship between
music and numbers [AC95]. Music analysts admit that
most composers use both calculations and intuition in variable
proportions. Until the eighteenth century, music, as a science of
numbers, constitutes a field of theoretical speculation and practical
experimentation for a great number of intellectuals, may they be
composers or not. Mersenne in his treatise Harmonie Universelle
poses the question if it is imaginable to compose the best chant
possible. The answer is negative: the number of possible chants is too
big, the composer can only proceed using trial and error. Developing
the idea of musical combinations further in the seventeenth and
eighteenth century, lead to the idea of automating certain aspects of
the musical composition, to the fabrication of the first music
machines (arca musurgia by the German Athanasius Kircher around
1650), and to musical games, such as the Musikalisches
Wurfespiel by Mozart.
As opposed to the generation and processing of audio signal by the
means of digital signal processing, or to the instrument-level
computerized interaction by the use of Musical Instrument Digital
Interface (MIDI, [Loy85]), systems for computer aided
composition (CAC) focus on helping the composers (and often the
musicologists as well) to formalize and experiment with the deep
structures and the dynamics of their musical languages. This approach
was envisioned by Ada Lovelace in the end of the 19th century when she
realized that the unachieved computing machine designed by Babbage
should be able to manipulate symbols as well as numbers, and, by
computing relations between symbols, could become someday a composing
machine for several artistic disciplines including music. When this
prediction became eventually true, in the late fifties, the first
computer music applications were essentially formal and algorithmic
[Hil70,Xen90,Bar86]. In the following
years, the computer music people's interest shifted massively to sound
synthesis and processing [Mat69] then to real-time
interaction. The ``modern'' CAC approach, appeared in the eighties,
was favored by the progress in computer languages, architectures, and
graphical user interfaces and the emergence of personal systems.
The Formes program [RC84], although mainly devoted to the
control of sound synthesis, was really a compositional environment,
with a high level object oriented architecture.
Crime was written in LeLisp in a Unix environment, and designed by
G. Assayag and composer C. Malherbe. The recent availability of the
Apple Macintosh and of cheap MIDI systems had become tempting at that
time. A series of software prototypes on the Mac, partly derived from
the Crime project and expertised by such composers as Tristan Murail
and Magnus Lindberg, took a final form with Mikael Laurson's original
idea to bring a graphical programming interface to Lisp. This form was
the PatchWork environment, by M. Laurson, J. Duthen and C. Rueda
[MJ89]. The combination of programming simplicity,
highly visual interface and personal computing concept created a real
infatuation for PatchWork among European composers with highly diverse
musical and aesthetic backgrounds. PatchWork is a visual interface to
the Lisp language. As such, it is a purely functional language, except
that some functions may retain a local state and provide a graphical
editor for inspecting and editing this state.
Developed during the same period by Francis Courtot, CARLA was an
attempt to use a visual programming interface to a Prolog-based logic
programming system [Cou92].
OpenMusic, designed by G. Assayag and C. Agon [GCFP97,Ago98], is a visual interface to CLOS, the Common Lisp Object
System. Aside from being a superset of PatchWork, it opens new
territories by allowing the composer to visually design sophisticated
musical object classes. It introduces the Maquette concept which
enables high level control of musical material over time and revises
the PatchWork visual language in a modern way.
Additional environments for CAC include Loco
[DH88], Common Music [Tau91], and
Artic/Canon/Nyquist [DR86,Dan89,Dan93] and DMix [Opp96]. We will discuss
aspects of these environments in more detail in the next chapter where
we will focus on the issues in the organization and manipulation of
time.