4. Conclusions
4.2 About the Methods
Regardless of these (more or less abstract) considerations about true creativity, this survey has presented existing work on algorithmic composition, organized in several categories. As described at the beginning of Section 3, these categories can be grouped in a few classes:
Symbolic AI (grammars and rule-based systems). Under this umbrella, we have grouped very different techniques. These techniques can be used both for imitation (be it the style of a specific composer, or more generally a musical style) and automation of composition tasks. They have proved very effective, and they are very popular (at least, by sheer volume of reviewed work), but in most cases, they are very labor-intensive, because they require musical knowledge to be encoded and maintained in the symbolic framework of choice. There has also been a clear trend towards more and more formal systems, gradually moving from ad hoc rule systems to constraint satisfaction and other various formalisms.
Machine learning (Markov chains and artificial neural networks). Because of their nature, machine learning techniques are used primarily for imitation, although both Markov chains (and related statistical methods) and artificial neural networks can be also used to automate composition tasks (such as harmonization). It should be noted that some techniques described here as symbolic AI are also machine learning (likeCope’s ATNs, rule learning or case-based reasoning).
Optimization techniques (evolutionary algorithms). As in the case of machine learning, optimization techniques (mostly evolutionary algorithms) have been profusely used for imitation, since it is natural to express the objective of the optimization (the fitness function) as the distance to the musical style to be imitated. However, the automation of composition tasks has also been explored, more so than in the case of machine learning techniques.
Self-similarity and cellular automata. Strictly speaking, these techniques are not a form of AI. As explained at the beginning of Section3, they just represent a convenient way to generate novel musical material without resorting to human musical knowledge, but the problem is that musical material generated in this way is very rough; it is most commonly used by human composers as raw material to build upon.
After reviewing the literature, it becomes apparent that there is no silver bullet: except for strict, limited imitation of specific musical styles or real-time improvisation systems that elaborate on input from human musicians, almost all approaches to algorithmic composition seem to be unable to produce content which can be deemed on a par with professional human composers, even without taking into account the problem of creativity as discussed in Section4.1. Very few examples stand out, and then only in some niche applications, such as the contemporary classical music composed by Iamus(Ball, 2012).
As there is no silver bullet, one obvious way forward is the hybridization of two or more methods. In fact, from our review of the existing work, it seems apparent that many researchers are already following this route, but there are some hybridizations that have rarely been explored. For example, the music material produced by systems based on self-similarity and CA is commonly regarded as a mere source of inspiration for human composers, rather than as a proper way to automate the composition of music, because this music material generally lacks structure. However, it can be used as the first stage in a process of algorithmic composition, to be modified and refined by subsequent stages, probably based on some form of machine learning if the goal is to produce music in a specific musical style, or some knowledge-based system (such as Leach and Fitch’s XComposer,
1995). In the case of evolutionary algorithms, self-similarity systems may be used to seed the initial population, or to introduce variety to avoid premature convergence, and CA may be used as individuals to be evolved (such as in the work of Lo, 2012, which also features machine learning techniques). More research is required to explore the potential of this kind of approach, combining self-similarity and CA-based systems with other methods.
In the case of optimization techniques, the multi-objective paradigm has rarely been used, at least in comparison with the traditional single-objective approach. Composing music usually requires balancing a set of many different, sometimes conflicting objectives, to configure the various aspects of the music, so multi-objective optimization seems a natural
to conflate all these objectives into a single fitness function. Very few researchers use multi-objective optimization, as do Geis and Middendorf (2008), Carpentier and Bresson (2010), De Prisco et al. (2010), and Freitas and Guimarães (2011). While multi-objective optimization is harder (both conceptually and in practice), it represents a natural way of dealing with the complexity of having many different objectives, and it should be explored more by the research community.
Finally, in the specific case of evolutionary algorithms, the issue of encoding the indi- viduals should also be examined. Looking at algorithmic composition as an optimization problem, search spaces for musical compositions tend to be huge and high-dimensional. Direct encodings (such as directly representing music as a sequence of pitches) make it very difficult to explore the search space in an effective way, with problems of scalability (the performance degrades significantly as the size of the problem increases) and solution structure (the solutions generated by the algorithm tend to be unstructured, hard to adapt and fragile). This problem is mitigated by indirect encodings, in which the genotype does not directly represent the phenotype, but rather a “list of instructions” to build it. Many different types of indirect encoding have been used in algorithmic composition, such as L-systems, other types of grammars, or the various encoding styles used in genetic pro- gramming. However, other advanced techniques for indirect encoding have rarely been applied to algorithmic composition, in order to overcome the aforementioned problems of scalability and solution structure, such as those related to artificial embryogenies(Stanley & Miikkulainen, 2003), which have been inspired by biological developmental processes. Adding these to the evolutionary toolkit may be a way to enable more and more complex compositional tasks to be tackled.