Algorithmic composition


Over time, music has been regarded as a combination of art and science. Even if the art of music surpasses its physical form, musical composition relies on a set of complex rules to manipulate the parameters of sound. The tonal system, for instance, proposed a hierarchical organization of pitches, based on the relationships between the chords that are formed on the notes of an equal-tempered scale. It led to the development of numerous composition instructions, which on one hand constrained composers to obey certain aesthetics, but on the other hand left them enough room for individual expression. Although tonal music, like baroque or Renaissance music before or serial and chance music after, could also be labelled as algorithmic composition, the expression is generally used to describe modern techniques of creating music with the help of a computer.


An algorithm is “a procedure for solving a mathematical problem in a finite number of steps that frequently involves repetition of an operation”, therefore algorithmic composition comprises, but it is not limited to, models from mathematics and computer science. Basically, the composer specifies a set of instructions that the computer follows to generate music – this attracted the term automated composition. The amount of involvement of the computer in the process of composition is a matter of individual aesthetics from one composer to another or one piece/program to another. Thus, there are two terms for the different methodologies implied in algorithmic compositions: “stochastic” (non-deterministic) and “rule-based” (Maurer 1999). These approaches are explained by Gerhard Nierhaus (2009, 27) in his book Algorithmic Composition: Paradigms of Automated Music Generation:

1. "non-knowledge-based methods" output musical data that is assessed and exploited by the composer;
2. "knowledge-based methods" generate musical entities as a result of the rules given by the composer.

The first kind of procedures were pioneered by Iannis Xenakis, while the second manner was employed in programs such as Gottfried Michael König’s “Projekt 1” and “Project 2”. John Maurer also makes the distinction of a third type of techniques: programs that have “artificial intelligence” and, by learning, can produce their own rules. This type draws information from the cognitive science and neural networks, in order to endow the computer new capabilities of composing.


The human-computer connection in algorithmic composition is achieved with dedicated programming languages. Concerning the purpose of music programming, Curtis Roads  writes:

Music systems programming can have all the technical and intellectual challenges of programming generally. Composition problems are notorious difficult to define precisely and completely, so satisfying one composer’s need may not lead to a universal solution.  Sometimes it is better to provide a flexible toolkit that the user can play with than it is to attempt to solve all aspects of a musical problem once and for all. (1996, 51-52)

And indeed, programming languages like Csound, Max/MSP, PD, OpenMusic, Common Music, Patchwork, SuperCollider and many others provide composers a modular framework for audio signal manipulation, sound synthesis, score notation, sound spatialization, various compositional practices and much more. Although composing algorithmically requires additional knowledge extrinsic to music, the accessibility of personal computers and the versatility of object-oriented programming languages have recently convinced more and more classical composers to acquire some level of skills in electronic music.


The narrative side of algorithmic composition is somewhat overlooked, analogous to conceptual art. Often, the resulted music seems too abstract for telling a story, but the inner logic of algorithmic composition narrates about the mind behind it. In multimedia, this way of composing allows the creator to automate the processes of generating content and helps him organize a story in a manner that can encompass any digital medium.


back to top