Kulitta: a Framework for Automated Composition

Authors:

Donya Quick

Abstract:

Kulitta is a Haskell-based, modular framework for automated composition and machine learning. A central idea to Kulitta’s approach is the notion of abstraction: the idea that something can be described at many different levels of detail. Music has many levels of abstraction, ranging from the sound we hear to a paper score and large-scale structural patterns. Music is also very multidimensional and prone to tractability problems. Kulitta works at many of levels of abstraction in stages as a way to mitigate these inherent complexity problems.

Abstract musical structure is generated by using a new category of grammars called probabilistic temporal graph grammars(PTGGs), which are a type of parameterized, context-free grammar that includes variable instantiation, a feature usually only found in grammars for programming languages. This abstract structure can be turned into full music through the use of constraint satisfaction algorithms and equivalence relations based on music theoretic concepts. An extension to an existing algorithm for learning PCFGs provides a way to learn production probabilities for these grammars using corpora of existing music. Kulitta’s modules for these features are able to be combined in different ways to support multiple styles of music.

Kulitta’s important contributions include (1) algorithms and a generalized Haskell implementation to support PTGGs, (2) additional formalization of existing musical equivalence relations along with a new equivalence relation for modeling jazz harmony, (3) an empirical evaluation strategy for measuring the performance of automated composition algorithms, and (4) the extension of a machine-learning algorithm for PCFGs to support a much broader category of grammars (inclusive of PTGGs) via the use of an oracle. Kulitta’s musical performance is also promising, demonstrating both stylistic versatility and aesthetically pleasing results.

See http://www.donyaquick.com/kulitta for supporting implementation

Bibtex:

 @phdthesis{quick2014,
    author="Donya Quick",
    title = "Kulitta: a Framework for Automated Music Composition",
    school = "Yale University",
    year = 2014,
} 

Links: