Algorithmic composition
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 can be used to describe music-generating techniques that run without ongoing human intervention, for example through the introduction of chance procedures. However through live coding and other interactive interfaces, a fully human-centric approach to algorithmic composition is possible.[1]
Some algorithms or data that have no immediate musical relevance are used by composers[2] 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) have been used as source materials.
Models
Compositional algorithms are usually classified by the specific 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 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 (
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:[3]
- mathematical models
- knowledge-based systems
- grammars
- evolutionary methods
- 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,[4][5] 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
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 fractals have been studied also as models for algorithmic composition.
As an example of deterministic compositions through mathematical models, the
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.[7]
Grammars
Music can also be examined as a language with a distinctive
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.[8] Researchers have generated music using a myriad of different optimization methods, including integer programming,[9] variable neighbourhood search,[10] and evolutionary methods as mentioned in the next subsection.
Evolutionary methods
Evolutionary methods of composing music are based on genetic algorithms.[11] 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.
Evo-Devo approach
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).[12][13]
Systems that 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 algorithmic modeling of style,
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.[17]
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 rhythmic canons and rhythmic fugues,[18][19] which were then worked out into harmonic compositions Eine kleine Mathmusik I and Eine kleine Mathmusik II; for scores and recordings see.[20]
See also
- AIVA
- Change ringing
- Computational creativity
- David Cope
- Euclid's algorithm)
- Generative music
- Musical dice game
- Pop music automation
- List of music software
References
- ISBN 9780190226992.
- S2CID 15546277.
- ^ Papadopoulos, George; Wiggins, Geraint (1999). "AI Methods for Algorithmic Composition: A Survey, a Critical View and Future Prospects" (PDF). Proceedings from the AISB'99 Symposium on Musical Creativity, Edinburgh, Scotland: 110–117.
- S2CID 9028922.
- ^ "Generating Music from Text".
- ^ Mauricio Toro, Carlos Agon, Camilo Rueda, Gerard Assayag. "GELISP: A Framework to Represent Musical Constraint Satisfaction Problems and Search Strategies." Journal of Theoretical and Applied Information Technology 86 (2). 2016. 327–331.
- ^ Brown, Silas (1997). "Algorithmic Composition and Reductionist Analysis: Can a Machine Compose?". CamNotes. Cambridge University New Music Society. Retrieved 28 October 2016.
- .
- S2CID 51888815.
- .
- American Association for Artificial Intelligence)
- doi:10.1038/488458a.
- .
- ^ S. Dubnov, G. Assayag, O. Lartillot, G. Bejerano, "Using Machine-Learning Methods for Musical Style Modeling Archived 2017-08-10 at the Wayback Machine", IEEE Computers, 36 (10), pp. 73–80, October 2003.
- ^ G. Assayag, S. Dubnov, O. Delerue, "Guessing the Composer's Mind : Applying Universal Prediction to Musical Style", in Proceedings of International Computer Music Conference, Beijing, 1999.
- ISBN 978-3-642-23125-4.
- OCLC 21132772.
- ^ Tangian, Andranik (2003). "Constructing rhythmic canons" (PDF). Perspectives of New Music. 41 (2): 64–92. Retrieved January 16, 2021.
- ^ Tangian, Andranik (2010). "Constructing rhythmic fugues (unpublished addendum to Constructing rhythmic canons)". IRCAM, Seminaire MaMuX, 9 February 2002, Mosaïques et pavages dans la musique (PDF). Retrieved January 16, 2021.
- ^ Tangian, Andranik (2002–2003). "Eine kleine Mathmusik I and II". IRCAM, Seminaire MaMuX, 9 February 2002, Mosaïques et pavages dans la musique. Retrieved January 16, 2021.
Further reading
- "Algorithmic Composition: Computational Thinking in Music" by
- ISBN 978-0-521-68865-9. Abstract
- 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.
- "A Functional Taxonomy of Music Generation systems" by 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.
- "Automatic Composition from Non-musical Inspiration Sources", by Robert Smith, et al.
- "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) "A framework for comparison of process in algorithmic music systems." In: Generative Arts Practice, 5–7 December 2005, Sydney, Australia.
- "Composing with Process: Perspectives on Generative and Systems Music", podcast
External links
- Drew Krause: Introduction to Algorithmic Composition on Vimeo
- Algorithmic Composer, series of algorithmic composition tutorials