Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Algorithmic composition
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Technique of using algorithms to create music}} {{Redirect|Music synthesizer|sound synthesizer|Synthesizer}} '''Algorithmic composition''' is the technique of using [[algorithm]]s to create [[music]]. Algorithms (or, at the very least, formal sets of rules) have been used to [[composer|compose]] music for centuries; the procedures used to plot [[Voice leading|voice-leading]] in Western [[counterpoint]], for example, can often be reduced to algorithmic determinacy. The term can be used to describe music-generating techniques that run without ongoing human intervention, for example through the introduction of [[Randomness|chance]] procedures. However through [[live coding]] and other interactive interfaces, a fully human-centric approach to algorithmic composition is possible.<ref>{{Cite book|url=https://global.oup.com/academic/product/the-oxford-handbook-of-algorithmic-music-9780190226992?cc=us&lang=en&|title=The Oxford Handbook of Algorithmic Music|date=2018-02-15|publisher=Oxford University Press|isbn=9780190226992|series=Oxford Handbooks|location=Oxford, New York}}</ref> Some algorithms or data that have no immediate musical relevance are used by composers<ref name="Music Algorithm Composition Inspiration">{{cite journal|last=Jacob|first=Bruce L.|title=Algorithmic Composition as a Model of Creativity|journal=[[Organised Sound]]|date=December 1996|volume=1|issue=3|pages=157–165|doi=10.1017/S1355771896000222|hdl=1903/7435|s2cid=15546277 |hdl-access=free}}</ref> as creative inspiration for their music. Algorithms such as [[fractal]]s, [[L-system]]s, [[statistics|statistical models]], and even arbitrary [[data]] (e.g. [[census]] figures, [[Geographic information system|GIS]] coordinates, or [[magnetic field]] measurements) have been used as source materials. ==Models== Compositional algorithms are usually classified by the specific [[Programming (music)|programming]] techniques they use. 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 [[computer music|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]] or [[MIDI]]) for other instruments or 2) provide an independent way of [[sound synthesis]] (playing the composition by itself). There are also algorithms creating both notational data and sound synthesis. One way to categorize compositional algorithms is by their structure and the way of processing data, as seen in this model of six partly overlapping types:<ref name="Papadopoulos and Wiggins">{{cite journal |url=http://www.doc.gold.ac.uk/~mas02gw/papers/AISB99b.pdf |title=AI Methods for Algorithmic Composition: A Survey, a Critical View and Future Prospects |year=1999 |last1=Papadopoulos |first1=George |last2=Wiggins |first2=Geraint |journal=Proceedings from the AISB'99 Symposium on Musical Creativity, Edinburgh, Scotland |pages=110–117 }}</ref> * mathematical models * knowledge-based systems * grammars * evolutionary methods * [[machine learning|systems which learn]] * hybrid systems ===Translational models=== This is an approach to music synthesis that involves "translating" information from an existing non-musical medium into a new sound. The translation can be either rule-based or [[stochastic]]. For example, when translating a picture into sound, a [[JPEG]] image of a horizontal line may be interpreted in sound as a constant pitch, while an upwards-slanted line may be an ascending scale. Oftentimes, the software seeks to extract concepts or metaphors from the medium, (such as height or sentiment) and apply the extracted information to generate songs using the ways music theory typically represents those concepts. Another example is the translation of text into music,<ref name="TransProse: Generating Music From Text" >{{cite journal | last=Davis|first=Hannah| title= Generating Music from Literature| url=https://archive.org/details/arxiv-1403.2124| journal= Proceedings of the EACL Workshop on Computational Linguistics for Literature|pages=1–10| year =2014|arxiv=1403.2124|doi=10.3115/v1/W14-0901|bibcode=2014arXiv1403.2124D|s2cid=9028922}}</ref><ref name="Generating Music From Text" >{{cite web |url=http://www.musicfromtext.com/ |title=Generating Music from Text }}</ref> which can approach composition by extracting sentiment (positive or negative) from the text using [[machine learning]] methods like [[sentiment analysis]] and represents that sentiment in terms of chord quality such as minor (sad) or major (happy) chords in the musical output generated. ===Mathematical models=== Mathematical models are based on mathematical [[equation]]s and random events. The most common way to create compositions through mathematics is [[stochastic process]]es. 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. Prominent examples of stochastic algorithms are [[Markov chain]]s and various uses of [[Gaussian distribution]]s. 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 the 1970s [[fractal]]s 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 [[12-tone equal temperament]] music. (It is initially set to convert each integer to a note on an 88-key [[musical keyboard]] by computing the integer [[modulo]] 88, at a steady rhythm. Thus 123456, the natural numbers, equals half of a chromatic scale.) As another example, the all-interval series has been used for computer-aided composition.<ref>Mauricio Toro, Carlos Agon, Camilo Rueda, Gerard Assayag. "[http://www.jatit.org/volumes/Vol86No2/17Vol86No2.pdf GELISP: A Framework to Represent Musical Constraint Satisfaction Problems and Search Strategies]." ''Journal of Theoretical and Applied Information Technology'' 86 (2). 2016. 327–331.</ref> ===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 the same style or genre. Usually this is accomplished by a set of tests or rules requiring fulfillment for the composition to be complete.<ref>{{cite magazine |last=Brown |first=Silas |date=1997 |title=Algorithmic Composition and Reductionist Analysis: Can a Machine Compose? |url=http://ssb22.user.srcf.net/clara/article.htm |magazine= CamNotes |publisher=Cambridge University New Music Society |access-date=28 October 2016}}</ref> ===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. ===Optimization approaches=== When generating well defined styles, music can be seen as a combinatorial optimization problem, whereby the aim is to find the right combination of notes such that the objective function is minimized. This objective function typically contains rules of a particular style, but could be learned using machine learning methods such as Markov models.<ref>{{cite journal |author1=[[Dorien Herremans|Herremans, D.]]|author2=Weisser, S. |author3=Sörensen, K. |author4=Conklin, D. |title=Generating structured music for bagana using quality metrics based on Markov models |journal=Expert Systems with Applications |date=2015 |volume=42 |issue=21 |pages=7424–7435 |url=https://repository.uantwerpen.be/docman/irua/f18aa4/13ae3a29.pdf|doi=10.1016/j.eswa.2015.05.043 |hdl=10067/1274260151162165141 |hdl-access=free }}</ref> Researchers have generated music using a myriad of different optimization methods, including integer programming,<ref>{{cite journal |author1=Cunha, Nailson dos Santos |author2=Anand Subramanian |author3=[[Dorien Herremans]]|title=Generating guitar solos by integer programming |journal=[[Journal of the Operational Research Society]]|date=2018 |volume=69 |issue=6 |pages=971–985 |url=http://www.dorienherremans.com/sites/default/files/preprint_guitar_solo_generation_dh.pdf|doi=10.1080/01605682.2017.1390528 |s2cid=51888815 }}</ref> variable neighbourhood search,<ref>{{cite journal |author1=[[Dorien Herremans|Herremans, D.]]|author2=Sörensen, K. |title=Composing fifth species counterpoint music with a variable neighborhood search algorithm |journal=Expert Systems with Applications |date=2013 |volume=40 |issue=16 |pages=6427–6437 |url=https://repository.uantwerpen.be/docman/irua/93e44d/cff18030.pdf|doi=10.1016/j.eswa.2013.05.071 }}</ref> and evolutionary methods as mentioned in the next subsection. ===Evolutionary methods=== [[Evolutionary music|Evolutionary methods of composing music]] are based on [[genetic algorithm]]s.<ref>Charles Fox 2006 [https://web.archive.org/web/20220330045047/https://www.aaai.org/Papers/FLAIRS/2006/Flairs06-047.pdf Genetic Hierarchical Music Structures] ([[American Association for Artificial Intelligence]])</ref> The composition is being built by the means of [[evolution]]ary 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. ===Evo-Devo approach=== [[evolutionary algorithm|Evolutionary]] methods, combined with developmental processes, constitute the ''evo-devo'' approach for generation and optimization of complex structures. These methods have also been applied to music composition, where the musical structure is obtained by an iterative process that transform a very simple composition (made of a few notes) into a complex fully-fledged piece (be it a score, or a MIDI file).<ref name="Nature">{{cite journal|last=Ball|first=Philip|author-link=Philip Ball|title=Algorithmic Rapture|journal=[[Nature (journal)|Nature]]|volume=188|issue=7412|year=2012|page=456|doi=10.1038/488458a|doi-access=free}}</ref><ref name="AI survey">{{cite journal|last1=Fernandez|first1=JD|last2=Vico|first2=F|title=AI Methods in Algorithmic Composition: A Comprehensive Survey.|journal=[[Journal of Artificial Intelligence Research]]|date=2013|volume=48|pages=513–582|doi=10.1613/jair.3908|doi-access=free|arxiv=1402.0585}}</ref> ===Systems that learn=== {{Further|Machine improvisation|Machine listening|Machine learning}} 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 algorithmic modeling of style,<ref>S. Dubnov, G. Assayag, O. Lartillot, G. Bejerano, "[http://cms2.unige.ch/fapse/neuroemo/pdf/JournalDubnov.pdf Using Machine-Learning Methods for Musical Style Modeling] {{Webarchive|url=https://web.archive.org/web/20170810025000/http://cms2.unige.ch/fapse/neuroemo/pdf/JournalDubnov.pdf |date=2017-08-10 }}", ''IEEE Computers'', 36 (10), pp. 73–80, October 2003.</ref> [[machine improvisation]], and such studies as [[cognitive science]] and the study of [[Neural network (machine learning)|neural networks]]. Assayag and Dubnov<ref>G. Assayag, S. Dubnov, O. Delerue, "[http://articles.ircam.fr/textes/Assayag99a/index.pdf Guessing the Composer's Mind : Applying Universal Prediction to Musical Style]", in ''Proceedings of International Computer Music Conference'', Beijing, 1999.</ref> proposed a variable length [[Markov model]] to learn motif and phrase continuations of different length. Marchini and Purwins<ref>{{cite book|chapter-url=https://link.springer.com/chapter/10.1007%2F978-3-642-23126-1_14 |last1=Marchini |first1=Marco |last2=Purwins |first2=Hendrik|chapter=Unsupervised Analysis and Generation of Audio Percussion Sequences |title=Exploring Music Contents |date=2011 |volume=6684 |pages=205–218 |doi=10.1007/978-3-642-23126-1_14|series=Lecture Notes in Computer Science |isbn=978-3-642-23125-4}}</ref> presented a system that learns the structure of an audio recording of a rhythmical percussion fragment using unsupervised clustering and variable length Markov chains and that synthesizes musical variations from it. ===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.<ref>{{Cite book |last=Harenberg |first=Michael |url=https://www.worldcat.org/oclc/21132772 |title=Neue Musik durch neue Technik? : Musikcomputer als qualitative Herausforderung für ein neues Denken in der Musik |date=1989 |publisher=Bärenreiter |isbn=3-7618-0941-7 |location=Kassel |oclc=21132772}}</ref> Another approach, which can be called ''computer-assisted composition'', is to algorithmically create certain structures for finally "hand-made" compositions. As early as in the 1960s, [[Gottfried Michael Koenig]] developed computer programs ''Project 1'' and ''Project 2'' for [[aleatoric music]], the output of which was sensibly structured "manually" by means of performance instructions. In the 2000s, [[Andranik Tangian]] developed a computer algorithm to determine the time event structures for [[Canon (music)|rhythmic canons]] and rhythmic fugues,<ref>{{Cite journal |last=Tangian|first=Andranik|author-link=Andranik Tangian|year=2003 |title= Constructing rhythmic canons |journal=[[Perspectives of New Music]]|volume=41 |issue=2 |pages=64–92 |url = http://repmus.ircam.fr/_media/mamux/papers/tangian-2003-pnmcanons.pdf |access-date= January 16, 2021}}</ref><ref>{{Cite book |last=Tangian|first=Andranik|author-link=Andranik Tangian|year=2010 |title= IRCAM, Seminaire MaMuX, 9 February 2002, Mosaïques et pavages dans la musique |chapter=Constructing rhythmic fugues (unpublished addendum to ''Constructing rhythmic canons'') |url = http://repmus.ircam.fr/_media/mamux/saisons/saison01-2001-2002/tangian_2002-2003_einekleinemathmusik_1-2_with-articles.pdf|access-date= January 16, 2021}}</ref> which were then worked out into harmonic compositions ''Eine kleine Mathmusik I'' and ''Eine kleine Mathmusik II''; for scores and recordings see.<ref>{{Cite book |last=Tangian|first=Andranik|author-link=Andranik Tangian|year=2002–2003 |title= IRCAM, Seminaire MaMuX, 9 February 2002, Mosaïques et pavages dans la musique |chapter= Eine kleine Mathmusik I and II |url = http://repmus.ircam.fr/mamux/saisons/saison01-2001-2002/2002-02-09|access-date= January 16, 2021}}</ref> ==See also== *[[AIVA]] *[[Change ringing]] *[[Computational creativity]] *[[David Cope]] *[[Euclidean rhythm]] (traditional musical rhythms that are generated by [[Euclid's algorithm]]) *[[Generative music]] *[[Musical dice game]] *[[Pop music automation]] *[[List of music software]] ==References== {{Reflist}} ==Further reading== * [http://cacm.acm.org/magazines/2011/7/109891-algorithmic-composition/fulltext "Algorithmic Composition: Computational Thinking in Music"] by [[Michael Edwards (British composer)|Michael Edwards]]. ''[[Communications of the ACM]]'', vol. 54, no. 7, pp. 58–67, July 2011 {{doi|10.1145/1965724.1965742}} *[[Karlheinz Essl]]: ''Algorithmic Composition.'' in: ''[[Cambridge Companions to Music|Cambridge Companion to Electronic Music]]'', ed. by Nicholas Collins and Julio d'Escrivan, Cambridge University Press 2007. {{ISBN|978-0-521-68865-9}}. [http://www.essl.at/bibliogr/algo-comp.html Abstract] *[http://sourceforge.net/p/musicalgorithm1/ Computer Music Algorithms] by Dr. John Francis. Music algorithmic computer programs representing all styles of music, with C source code, produces midi files. 19th ed 2019, now contain 57 programs, 20 styles, and 24 chapters. * [https://dl.acm.org/citation.cfm?id=3108242 "A Functional Taxonomy of Music Generation systems"] by [[Dorien Herremans]], Ching-Hua Chuang and [[Elaine Chew]]. ''[[ACM Computing Surveys]]'', vol. 55, no. 5, pp. 69:1–30 {{doi|10.1145/3108242}}. *[[Eduardo Reck Miranda]]: ''Composing Music with Computers.'' Focal Press 2001 *Gerhard Nierhaus: ''Algorithmic Composition – Paradigms of Automated Music Generation.'' Springer 2008. {{ISBN|978-3-211-75539-6}} * Curtis Roads: ''The Computer Music Tutorial.'' MIT Press 1996. {{ISBN|9780262680820}}. *[http://computationalcreativity.net/iccc2012/wp-content/uploads/2012/06/160-Smith.pdf "Automatic Composition from Non-musical Inspiration Sources"], by Robert Smith, et al. * [http://muse.jhu.edu/journals/computer_music_journal/v025/25.1supper.html "A Few Remarks on Algorithmic Composition"] by Martin Supper. ''[[Computer Music Journal]]'' 25.1 (2001) 48–53 *Phil Winsor and Gene De Lisa: ''Computer Music in C.'' Windcrest 1990. {{ISBN|978-1-57441-116-4}} *Wooller, Rene, Brown, Andrew R, Miranda, Eduardo, Diederich, Joachim, & Berry, Rodney (2005) [http://eprints.qut.edu.au/6544/ "A framework for comparison of process in algorithmic music systems."] In: ''Generative Arts Practice'', 5–7 December 2005, Sydney, Australia. *[http://rwm.macba.cat/en/composingwithprocess_tag "Composing with Process: Perspectives on Generative and Systems Music"], podcast ==External links== {{commons category|Algorithmic compositions}} * {{Vimeo|54910233|Drew Krause: Introduction to Algorithmic Composition}} * [http://www.algorithmiccomposer.com/ Algorithmic Composer], series of algorithmic composition tutorials {{Computer music}} [[Category:Computer music]] [[Category:Music theory]] [[Category:Markov models]] [[Category:Procedural generation]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Computer music
(
edit
)
Template:Doi
(
edit
)
Template:Further
(
edit
)
Template:ISBN
(
edit
)
Template:Redirect
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Vimeo
(
edit
)
Template:Webarchive
(
edit
)