Dipartimento di Informatica, University of Salerno, Fisciano (SA), 84084, Italy
Evol Comput. 2020 Fall;28(3):489-530. doi: 10.1162/evco_a_00265. Epub 2019 Oct 10.
Evolutionary algorithms mimic evolutionary behaviors in order to solve problems. They have been successfully applied in many areas and appear to have a special relationship with creative problems; such a relationship, over the last two decades, has resulted in a long list of applications, including several in the field of music. In this article, we provide an evolutionary algorithm able to compose music. More specifically we consider the following 4-voice harmonization problem: one of the 4 voices (which are bass, tenor, alto, and soprano) is given as input and the composer has to write the other 3 voices in order to have a complete 4-voice piece of music with a 4-note chord for each input note. Solving such a problem means finding appropriate chords to use for each input note and also finding a placement of the notes within each chord so that melodic concerns are addressed. Such a problem is known as the . The proposed algorithm for the unfigured harmonization problem, named , uses a novel representation of the solutions in terms of chromosomes (that allows to handle both harmonic and nonharmonic tones), specialized operators (that exploit musical information to improve the quality of the produced individuals), and a novel multiobjective evaluation function (based on an original statistical analysis of a large corpus of Bach's music). Moreover EvoComposer is the first evolutionary algorithm for this specific problem. EvoComposer is a multiobjective evolutionary algorithm, based on the well-known NSGA-II strategy, and takes into consideration two objectives: the harmonic objective, that is finding appropriate chords, and the melodic objective, that is finding appropriate melodic lines. The composing process is totally automatic, without any human intervention. We also provide an evaluation study showing that EvoComposer outperforms other metaheuristics by producing better solutions in terms of both well-known measures of , such as hypervolume, index, coverage of two sets, and standard measures of . We conjecture that a similar approach can be useful also for similar musical problems.
进化算法模拟进化行为,以解决问题。它们已成功应用于许多领域,并且似乎与创造性问题有着特殊的关系;在过去的二十年中,这种关系导致了许多应用,包括音乐领域的几个应用。在本文中,我们提供了一种能够作曲的进化算法。更具体地说,我们考虑了以下 4 声部和声问题:输入 4 个声部中的 1 个(分别为低音、高音、中音和高音),作曲者必须写出其他 3 个声部,以便为输入的每个音符提供一个完整的 4 声部音乐作品,每个输入音符有 4 个音符的和弦。解决这样的问题意味着找到合适的和弦来使用每个输入音符,以及在每个和弦中找到音符的位置,以解决旋律问题。这样的问题被称为“未说明的和声问题”。用于未说明的和声问题的算法,命名为 EvoComposer,使用一种新颖的染色体表示法(允许处理和声和非和声音调)、专门的算子(利用音乐信息来提高产生个体的质量)和一种新颖的多目标评价函数(基于对巴赫音乐的大量语料库的原始统计分析)。此外,EvoComposer 是针对此特定问题的第一个进化算法。EvoComposer 是一种基于著名的 NSGA-II 策略的多目标进化算法,它考虑了两个目标:和声目标,即找到合适的和弦,以及旋律目标,即找到合适的旋律线。作曲过程完全是自动的,无需人工干预。我们还提供了一项评估研究,表明 EvoComposer 优于其他元启发式算法,在多种公认的度量标准方面都能产生更好的解决方案,例如超体积、I 指数、两个集合的覆盖范围和标准度量标准。我们推测,类似的方法对于类似的音乐问题也可能有用。