Patchwork is a graphical interactive environment for computer assisted composition which is aimed at helping composers generate, represent and manipulate musical material. Its general, extendible environment can be easily adapted to suit radically different aesthetic needs.


Implemented using Macintosh Common Lisp, Patchwork was originally conceived to create, manipulate and edit musical structures in order to generate pre-compositional material for instrumental music. Interfaces for the synthesis programs Csound and Chant have been subsequently added as supplementary tools for controlling sound synthesis.
Patchwork was designed to offer the musician a wide range of musical functions, to provide a flexible environment in which he can craft his compositional material and structures and to allow him to test his results with commercial synthesizers. However, one of Patchwork's principal strengths is that it allows the composer to add personalised functions specifically adapted to his constantly evolving compositional needs.

The concept of graphic patch (module network)

A patch is a graphically programmed execution procedure represented on-screen by interconnected objects (programs) in the form of boxes/modules containing inputs and outputs. The path traced by the operating connections between these objects defines the behaviour of a particular musical application pertaining to the creation, transformation or editing of musical data.
Part of Patchwork's power is related to the principle of abstraction in which a complex patch can be transformed into a single box. The musician can then organise these abstractions into specialised libraries in order to create his own ever-developing environment.

The patchwork objects

The module is the basic unit of Patchwork. It is selected from a list of categorised modules in the menu bar. Its graphic representation in a patch is a rectangle (box) containing a variable number of inputs and a single output. Each module is associated with a specific function whose code (programmed in Lisp) can be easily accessed and modified in a text window.
The different types of Patchwork modules include:

Applications and libraries

According to the knowledge, experience and needs of the composer, Patchwork can be used at different levels:


Concept: Mikael Laurson, Camilo Rueda, Jacques Duthen
User group: Mikhaïl Malt
Development: the IRCAM Music Representation team: Gérard Assayag, Carlos Agon


Macintosh or PowerMacintosh (preferably with a large monitor) and System Software 7.1 or later. A minimum of 8MB of RAM and a 20MB hard disk is strongly recommended. In order to compile new functions/modules, Patchwork needs Common Lisp 2.0.1 (available by Digitool or APDA). For Macintosh models before PowerMacintosh, the Csound and Chant Libraries are compatible with a Digidesign card and a high quality audio reproduction system; Chant can also be used on NeXT, SGI, Dec Alpha, and Dec Mips stations.