Automatic composition of melodic and harmonic music by answer set programming

Georg Boenn, Martin Brain, Marina De Vos, John ffitch

Research output: Chapter or section in a book/report/conference proceedingChapter or section

27 Citations (SciVal)
339 Downloads (Pure)


The composition of most styles of music is governed by rules. The natural statement of these rules is declarative (``The highest and lowest notes in a piece must be separated by a consonant interval'') and non deterministic (``The base note of a key can be followed by any note in the key''). We show that by approaching the automation and analysis of composition as a knowledge representation task and formalising these rules in a suitable logical language, powerful and expressive intelligent composition tools can easily be built. This paper describes the use of answer set programming to construct an automated system that can compose both melodic and harmonic music, diagnose errors in human compositions and serve as a computer-aided composition tool. The use of a fully declarative language and an ``off-the-shelf'' reasoning engine allows the creation of tools which are significantly simpler, smaller and more flexible than those produced by existing approaches. It also combines harmonic and melodic composition in a single framework, which is a new feature in the growing area of algorithmic composition.
Original languageEnglish
Title of host publicationLogic Programming. Proceedings of the 24th International Conference, ICLP 2008
EditorsM Garcia de la Banda, E Pontelli
Number of pages15
ISBN (Electronic)978-3-540-89982-2
ISBN (Print)978-3-540-89981-5
Publication statusPublished - Dec 2008
Event24th International Conference on Logic Programming (ICLP 2008) - Udine. Italy
Duration: 9 Dec 200813 Dec 2008

Publication series

NameLecture Notes in Computer Science


Conference24th International Conference on Logic Programming (ICLP 2008)
CityUdine. Italy


Dive into the research topics of 'Automatic composition of melodic and harmonic music by answer set programming'. Together they form a unique fingerprint.

Cite this