Navigating the Landscape of Computer Aided Algorithmic Composition Systems: a Definition, seven Descriptors, and a Lexicon of Systems and Research

Towards developing methods of software comparison and analysis, this article proposes a definition of a computer aided algorithmic composition (CAAC) system and offers seven system descriptors: scale, process-time, idiom-affinity, extensibility, event production, sound source, and user environment. The public internet resource algorithmic.net is introduced, providing a lexicon of systems and research in computer aided algorithmic composition. 1. DEFINITION OF A COMPUTER-AIDED ALGORITHMIC COMPOSITION SYSTEM Labels such as algorithmic composition, automatic composition, composition pre-processing, computeraided composition (CAC), computer composing, computer music, procedural composition, and score synthesis have all been used to describe overlapping, or sometimes identical, projects in this field. No attempt will be made to distinguish these terms, though some have tried (Spiegel 1989; Cope 1991, p. 220; Burns 1994, p. 195; Miranda 2000, pp. 9-10; Taube 2004; Gerhard and Hepting 2004, p. 505). In order to provide greater specificity, a hybrid label is introduced: CAAC, or computer aided algorithmic composition. (This term is used in passing by Martin Supper (2001, p. 48).) This label is derived from the combination of two labels, each too vague for continued use. The label “computer aided composition” lacks the specificity of using generative algorithms. Music produced with notation or sequencing software could easily be considered computer aided composition. The label “algorithmic composition” is likewise too broad, particularly in that it does not specify the use of a computer. Although Mary Simoni has suggested that “because of the increased role of the computer in the compositional process, algorithmic composition has come to mean the use of computers...” (2003), there remain many historical and contemporary compositional techniques that, while not employing the computer, are properly described as algorithmic. David Cope supports this view, stating that “... the term ‘computer’ is not requisite to a definition of algorithmic composition...” (1993, p. 24). Since 1955 a wide variety of CAAC systems have been created. Towards the aim of providing tools for software comparison and analysis, this article proposes seven system descriptors. Despite Lejaren Hiller’s well-known claim that “computer-assisted composition is difficult to define, difficult to limit, and difficult to systematize” (Hiller 1981, p. 75), a definition is proposed. A CAAC system is software that facilitates the generation of new music by means other than the manipulation of a direct music representation. Here, “new music” does not designate style or genre; rather, the output of a CAAC system must be, in some manner, a unique musical variant. An output, compared to the user’s representation or related outputs, must not be a “copy,” accepting that the distinction between a copy and a unique variant may be vague and contextually determined. This output may be in the form of any sound or sound parameter data, from a sequence of samples to the notation of a complete composition. A “direct music representation” refers to a linear, literal, or symbolic representation of complete musical events, such as an event list (a score in Western notation or a MIDI file) or an ordered list of amplitude values (a digital audio file or stream). Though all representations of aural entities are necessarily indirect to some degree, the distinction made here is not between these representations and aural entities. Rather, a distinction is made between the representation of musical entities provided to the user and the system output. If the representation provided to the user is the same as the output, the representation may reasonably be considered direct. A CAAC system permits the user to manipulate indirect musical representations: this may take the form of incomplete musical materials (a list of pitches or rhythms), an equation, non-music data, an image, or meta-musical descriptions. Such representations are indirect in that they are not in the form of complete, ordered musical structures. In the process of algorithmic generation these indirect representations are mapped or transformed into a direct music representation for output. When working with CAAC software, the composer arranges and edits these indirect representations. The software interprets these indirect music representations to produce musical structures. This definition does not provide an empirical measure by which a software system, removed from use, can be isolated as a CAAC system. Rather, a contextual ariza@flexatone.net delineation of scope is provided, based in part on use case. Consideration must be given to software design, functionality, and classes of user interaction. This definition is admittedly broad, and says only what a CAAC system is not. This definition includes historic systems such as the Experiments of Hiller and Isaacson (1959), Iannis Xenakis’s SMP (1965), and Gottfried Michael Koenig’s PR1 (1970a) and PR2 (1970b). In these cases the user provides initial musical and nonmusical data (parameter settings, value ranges, stockpile collections), and these indirect representations are mapped into score tables. This definition likewise encompasses Xenakis’s GENDYN (1992) and Koenig’s SSP (Berg et al 1980). This definition includes any system that converts images (an indirect representation) to sound, such as Max Mathews and L. Rosler’s Graphic 1 system (1968) or Xenakis’s UPIC (1992; Marino et al. 1993). It does not matter how the images are made; they might be from a cellular automaton, a digital photograph, or hand-drawn. What matters is that the primary user-interface is an indirect representation. Some systems may offer the user both direct and indirect music representations. If one representation is primary, that representation may define the system; if both representations are equally presented to the user, a clear distinction may not be discernible. This definition excludes, in most use cases, notation software. Notation software is primarily used for manipulating and editing a direct music representation, namely Western notation. New music is not created by notation software: the output, the score, is the userdefined representation. Recently, systems such as the popular notation applications Sibelius (Sibelius Software Limited) and Finale (MakeMusic! Inc.) have added user-level interfaces for music data processing in the form of specialized scripting languages or plug-ins. These tools allow the user to manipulate and generate music data as notation. In this case, the script and its parameters are an indirect music representation and can be said to have attributes of a CAAC system. This is not, however, the primary user-level interface. This definition excludes, in most use cases, digital audio workstations, sequencers, and digital mixing and recording environments. These tools, as with notation software, are designed to manipulate and output a direct music representation. The representation, in this case, is MIDI note data, digital audio files, or sequences of event data. Again, new music is not created. The output is the direct representation that has been stored, edited, and processed by the user. Such systems often have modular processors (plug-ins or effects) for both MIDI and digital audio data. Some of these processors allow the user to control music data with indirect music representations. For example, a MIDI processor might implement an arpeggiator, letting the user, for a given base note, determine the scale, size, and movement of the arpeggio. In this case the configuration of the arpeggio is an indirect representation, and can be said to have attributes of a CAAC system. This is not, however, the primary user-level interface. 2. RESEARCH IN CATEGORIZING COMPOSITION SYSTEMS The number and diversity of CAAC systems, and the diversity of interfaces, platforms, and licenses, have made categorization elusive. Significant general overviews of computer music systems have been provided by Curtis Roads (1984, 1985), Loy and Curtis Abbott (1985), Bruce Pennycook (1985), Loy (1989), and Stephen Travis Pope (1993). These surveys, however, have not focused on generative or transformational systems. Pennycook (1985) describes five types of computer music interfaces: (1) composition and synthesis languages, (2) graphics and score editing environments, (3) performance instruments, (4) digital audio processing tools, and (5) computer-aided instruction systems. This division does not attempt to isolate CAAC systems from tools used in modifying direct representations, such as score editing and digital audio processing. Loy (1989, p. 323) considers four types of languages: (1) languages used for music data input, (2) languages for editing music, (3) languages for specification of compositional algorithms, and (4) generative languages. This division likewise intermingles tools for direct representations (music data input and editing) with tools for indirect representations (compositional algorithms and generative languages). Pope’s “behavioral taxonomy” (1993, p. 29), in focusing on how composers interact with software, is near to the goals of this study, but is likewise concerned with a much broader collection of systems, including “... softwareand hardware-based systems for music description, processing, and composition ...” (1993, p. 26). Roads survey of “algorithmic composition systems” divides software systems into four categories: (1) selfcontained automated composition programs, (2) command languages, (3) extensions to traditional programming languages, (4) and graphical or textual environments including music programming languages (1996, p. 821). This division also relates to the perspective taken here, though neither degrees of “selfcontainment” nor distinctions between music languages and language extensions are considered. Texts that have attempted to provide an overview o