Algorithmic composition 479884 225824772 2008-07-15T15:59:43Z 83.50.250.230 /* External links */ '''Algorithmic composition''' is the technique of using [[algorithm|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 [[composer]]s 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-system]]s, [[statistics|statistical models]], and even arbitrary [[data]] (e.g. [[census]] figures, [[Geographic information system|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. == 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 an 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 ===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. As an example of deterministic compositions through mathematical models, the [[On-Line Encyclopedia of Integer Sequences]] provides an option to play an [[integer sequence]] as music. (It converts each integer to a note on an 88-key [[musical keyboard]] by computing the integer [[Modulo operation|modulo]] 88.) ===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 a 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. ===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. ===Evolutionary methods=== [[Evolutionary music|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. ===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]]. ===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. ==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 [[improvisation]]s 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; later in the life of that company, now rechristened [[LucasArts]], an algorithmic [[iMUSE]] engine was developed for their flagship game, [[Dark Forces]]. Similar [[generative music]] systems have caught the attention of noted composers. [[Brian Eno]] has produced a number of works for the [http://www.intermorphic.com/s2/newco.html SSEYO's Koan] generative music system, which produces [[Ambient music|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. Composers known for their use of algorithmic procedures: * [[Clarence Barlow]] * [[Sean Booth]] * [[Rob Brown]] * [[Paul Burdick]] * [[John Cage]] * [[David Cope]] * [[Charles Dodge]] * [[Brian Eno]] * [[Karlheinz Essl]] * [[Lejaren Hiller]] * [[Igor Karaca]] * [[Gottfried Michael Koenig]] * [[Otto Laske]] * [[Gary Lee Nelson]] * [[Paul Lansky]] * [[Eduardo Reck Miranda]] * [[Abbas Pirnia]] * [[Robert Rowe]] * [[Laurie Spiegel]] * [[Morton Subotnick]] * [[Rodney Waschka II]] * [[Iannis Xenakis]] * [[Kristoffer Zegers]] ==Samples of algorithmic music== * A sample of ''[[Ballblazer]]'' music: [[Media:Ballblazer.ogg|OGG vorbis format]], (''[[:Image:Ballblazer.ogg|details]]'') * A [[jazz]] saxophone solo automatically generated by [[Band-in-a-Box]]: [[Media:BiaB(bebop).ogg|OGG vorbis format]]. * The ''babelcast'' ([[RSS (file format)|RSS]] [http://www.flexatone.net/babelcast.xml subscription feed], [[iTunes Store|iTMS]] [http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=78320074 free subscription]) and ''telequalia'' ([[RSS (file format)|RSS]] [http://www.flexatone.net/telequalia.xml subscription feed], [[iTunes Store|iTMS]] [http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=218454321 free subscription]), algorithmic, computer-generated [[Podcast]] series by Christopher Ariza * Samples with piano and cello from the computer program [http://www.randomusic.com/samples/ Randomusic]. * Samples of Paul Ramsay's ''Parallel Music'' (uses Shockwave): [http://www.chameleonlectra.co.uk/PMusic-Singles.html PMusic: SINGLES]; [http://www.chameleonlectra.co.uk/Consemble-P.html Consemble Plymouth] and [http://www.chameleonlectra.co.uk/Consemble.html Consemble (open compositions project).] * Samples of Karlheinz Essl's [http://www.essl.at/sounds.html#lex Lexikon-Sonate] (MIDI). * Samples of Phil Thompson's [http://www.fractalmusician.com Fractal Music] and software. * Samples of Gary Lee Nelson's [http://www.timara.oberlin.edu/GaryLeeNelson Fractal Music]. * Samples of Martin Dostál's [http://phoenix.inf.upol.cz/~dostal/evm.html GeneticDrummer System]. * Samples from Ensemble 176's [http://nyme.org/176music.html online recordings]. * [[Impro-Visor]]: software that can generate [[jazz]] solos algorithmically using a user-specifiable [[stochastic context-free grammar]]. * [http://www.robertinventor.com/software/3.0/index.htm Fractal Tunes you can make with Tune Smithy 3.0] sample fractal tunes made with Tune Smithy == Literature == *Curtis Roads: ''The Computer Music Tutorial.'' MIT Press 1996 *Karlheinz Essl: ''Algorithmic Composition.'' in: Cambridge Companion to Electronic Music, ed. by N. Collins and J. d'Escrivan, Cambridge University Press 2007. - ISBN-13: 978-0521688659. - [http://www.essl.at/bibliogr/algo-comp.html Abstract] ==External links== * [http://www.brotherstechnology.com/math/fractal-music.html Fractal Music] Research, resources, and compositions by [[Harlan J. Brothers|Harlan Brothers]]. * [http://www.geocities.com/SiliconValley/Haven/4386/ FractMus] is a freeware algorithmic composition program written by Spanish composer and pianist [http://www.gustavodiazjerez.com Gustavo Díaz-Jerez]. * [http://www.robertinventor.com/software/tunesmithy/tune_smithying.htm Fractal Tune Smithy] an algorithmic composition program written by Robert Walker * [http://musicalgorithms.ewu.edu/index.html Musical Algorithms] An interactive exploration of the relationship between music and mathematical formulas funded by the Northwest Academic Computing Consortium, project directed by Jonathan N. Middleton. * [http://codeminion.com/blogs/maciek/2008/05/cgmusic-computers-create-music/ cgMusic] is a free, extensible algorithmic composition program that can create [[tonality|tonal]] music in various styles. MIDI and MP3 samples are available on the website. ==See also== *[[Artificial Creativity]] *[[Computer-Aided Algorithmic Composition]] *[[Computer-generated music]] *[[Evolutionary music]] *[[Generative music]] [[Category:Musical composition]] [[de:Algorithmische Komposition]]