Algorithmic composition
From Wikipedia, the free encyclopedia
Algorithmic composition is the technique of using algorithms to create music.
Algorithms (or, at the very least, formal sets of rules) have been used to compose music for centuries; the procedures used to plot voice-leading in Western counterpoint, for example, can often be reduced to algorithmic determinacy. The term is usually reserved, however, for the use of formal procedures to make music without human intervention, either through the introduction of chance procedures or the use of computers. There is a radical distinction (both in terms of philosophy and in the heard result) between composers who use indeterminate (e.g. stochastic) procedures to compose music and those who use routines which produce deterministic results given a fixed input into the algorithm.
Many algorithms that have no immediate musical relevance are used by composers as creative inspiration for their music. Algorithms such as fractals, L-systems, statistical models, and even arbitrary data (e.g. census figures, GIS coordinates, or magnetic field measurements) are fair game for musical interpretation. The success or failure of these procedures as sources of "good" music largely depends on the mapping system employed by the composer to translate the non-musical information into a musical data stream.
Contents |
[edit] Models for algorithmic composition
There is no universal method to sort different compositional algorithms into categories. One way to do this is to look at the way algorithm takes part in the compositional process. The results of the process can then be divided into 1) music composed by computer and 2) music composed with the aid of computer. Music may be considered composed by computer when the algorithm is able to make choices of its own during the creation process.
Another way to sort compositional algorithms is to examine the results of their compositional processes. Algorithms can either 1) provide notational information (sheet music) for other instruments or 2) provide independent way of sound synthesis (playing the composition by itself). There are also algorithms creating both notational data and sound synthesis.
However, the most common way to categorise compositional algorithms is by their structure and the way of processing musical data. One of the most detailed division consists of six partly overlapping models:
- mathematical models
- knowledge-based systems
- grammars
- evolutionary methods
- systems which learn
- hybrid systems
[edit] Mathematical models
Mathematical models are based on mathematical equations and random events. The most common way to create compositions through mathematics is stochastic processes. In stochastic models a piece of music is composed as a result of non-deterministic methods. The compositional process is only partially controlled by the composer by weighting the possibilities of random events. One good example of stochastic algorithms is Markov chains. Stochastic algorithms are often used together with other algorithms in various decision-making processes.
Music has also been composed through natural phenomena. These chaotic models create compositions from the harmonic and inharmonic phenomena of nature. For example, since 1970's fractals have been studied also as models for algorithmic composition.
[edit] Knowledge-based systems
One way to create compositions is to isolate the aesthetic code of a certain musical genre and use this code to create new similar compositions. Knowledge-based systems are based on this idea of pre-made set of arguments that can be used to compose new works of same style or genre. Usually this is accomplished by a set of tests or rules needing to be fulfilled for the composition to be complete.
[edit] Grammars
Music can also be examined as a language with a distinctive grammar set. Compositions are created by first constructing a musical grammar, which is then used to create comprehensible musical pieces. Grammars often include rules for macro-level composing, for instance harmonies and rhythm, rather than single notes.
[edit] Evolutionary methods
Evolutionary methods of composing music are based on genetic algorithms. The composition is being built by the means of evolutionary process. Through mutation and natural selection, different solutions evolve towards a suitable musical piece. Iterative action of the algorithm cuts out bad solutions and creates new ones from those surviving the process. The results of the process are supervised by the critic, a vital part of the algorithm controlling the quality of created compositions.
[edit] Systems which learn
Learning systems are programs that have no given knowledge of the genre of music they are working with. Instead, they collect the learning material by themselves from the example material supplied by the user or programmer. The material is then processed into a piece of music similar to the example material. This method of algorithmic composition is strongly linked to such studies as cognitive science and study of neural networks.
[edit] Hybrid systems
Programs based on a single algorithmic model rarely succeed in creating aesthetically satisfying results. For that reason algorithms of different type are often used together to combine the strengths and diminish the weaknesses of these algorithms. Creating hybrid systems for music composition has opened up the field of algorithmic composition and created also many brand new ways to construct compositions algorithmically. The only major problem with hybrid systems is their growing complexity and the need of resources to combine and test these algorithms.
[edit] Works and applications
Algorithmic techniques have also been employed in a number of systems intended for direct musical performance, with many using algorithmic techniques to generate infinitely-variable improvisations on a predetermined theme. An early example was Lucasfilm Games' 1982 computer game Ballblazer, where the computer improvised on a basic jazz theme composed by the game's musical director. A more advanced implementation of this is present in the music subsystem of Microsoft's Xbox games console - the game plays variations on a human composer's theme, but varies its improvisations based on real-time events in the game (so, for example, the music sounds more staccato and dramatic during fight scenes, but is gentler and more mellow afterward). The effect has been seen in many video-games since the Nintendo 64, the first system with a large enough memory and fast enough ROM retrieval methods to make such a change in the flow and sound of the music possible. One of the first to adopt such sound was The Legend of Zelda: Ocarina of Time where approaching important areas raised the volume and pitch of the sound. Another games of note is Fable on the Xbox for similar uses of sound. Similar systems were also used in games like Command & Conquer: Generals, Splinter Cell and Freedom Fighters.
Similar generative music systems have caught the attention of noted composers. Brian Eno has produced a number of works for the SSEYO's Koan generative music system, which produces ambient variations for web-pages, mobile devices, and for standalone performance. The copyright status of these "generative" works is unclear, although the original "composition" is supplied by the composer and the "performance" is largely the result of the user's computer's own algorithms. However, MusiGenesis (see external link below), an algorithmic composition program based on Richard Dawkins' The Blind Watchmaker program, makes no ownership claims on music created by the program.
Composers known for their use of algorithmic procedures:
- Sean Booth and Rob Brown
- John Cage
- David Cope
- Charles Dodge
- Brian Eno
- Karlheinz Essl
- Lejaren Hiller
- Gottfried Michael Koenig
- Otto Laske
- Gary Lee Nelson
- Paul Lansky
- Eduardo Reck Miranda
- Laurie Spiegel
- Morton Subotnick
- Iannis Xenakis
[edit] Samples of algorithmic music
- A sample of Ballblazer music: OGG vorbis format, (details)
- A jazz saxophone solo automatically generated by Band-in-a-Box: OGG vorbis format.
- The babelcast (RSS subscription feed, iTMS free subscription) and telequalia (RSS subscription feed, iTMS free subscription), algorithmic, computer-generated Podcast series by Christopher Ariza
- Samples with piano and cello from the computer program Randomusic.
- Samples of Parallel Music (uses Shockwave): PMusic: SINGLES.
- Samples of Karlheinz Essl's Lexikon-Sonate (MIDI).
- Samples of Phil Thompson's Fractal Music and software.
- Samples of Gary Lee Nelson's Fractal Music.
[edit] External links
- ACToolbox - an application to assist the algorithmic composition of music Computer-Aided Algorithmic Composition
- algorithmic.net - a lexicon of systems and research in Computer-Aided Algorithmic Composition
- ArtSong - is a WindowsOS application for algorithmic music composition using a configurable 'building-block' algorithmic model. Computer-Aided Algorithmic Composition
- Bol Processor is a rule-based, text-oriented composition software running on MacOS and interfaced with Csound and MIDI.
- envl.net: Free, on-line, web-based tools for music generation
- FlexiMusic Generator - generates music samples with graphs and numbers. Also generates noise and special sound samples useful for game programmers.
- Fractmus: Fractmus is a freeware algorithmic composition program written by Spanish composer and pianist Gustavo Díaz-Jerez. Its source code is also freely available.
- FractalMusician.com Phil Thompson's Organised Chaos: The Music of Chaos Theory. Fractal Music, Gingerbread and Venharis Fractal Music Generation Software.
- Fractal Music Research, resources, and compositions by Harlan Brothers.
- Hyperscore Graphical music composition software.
- MusiGenesis - generative music software that uses applied evolutionary theory to "grow" music; for musicians and non-musicians alike
- Parallel Music - Parallel Music or 'PMusic' is a form of computer-based, algorithmic, indeterminate composition. The PMusic area of the Chameleon Lectra site provides more information and some free pieces.
- rand()% is a real-time generative internet radio station.
- Randomusic is a computer program that generates music sounding like human improvisations in the avant-garde genre of classical music. The site has samples with piano and cello you can listen to.
- Realtime Composition Tools - generative computer programs for composition, live performance and sound design by Karlheinz Essl
- SSEYO Koan Pro - SSEYO's Koan Pro generative music authoring tool, as used by Brian Eno to create 'Generative Music 1'.
- Synesthesia Lauri Gröhn has developed software that generates music (midi file) from any photos in a few seconds.
- Virtual MIDI Machine:VMM is a c-like multithreading language that allows a composer to write low-level MIDI algorithms.
- WACM: Composer David Cope offers a workshop in creating Algorithmic Computer Music every summer at UCSC.