This paper presents a procedure which composes music pieces through handling four layers in music, namely pitches, rhythms, dynamics, and timber. As an innovative feature, the procedure uses the combination of a genetic algorithm with a synergetic variable neighbourhood search. Uniform and one-point crossover operators as well as two mutation operators conduct the search in the employed genetic algorithm. The key point with these four operators is that the uniform crossover operator and the first mutation operator are indiscriminate, in the sense of using no knowledge of music theory, whereas the employed one-point crossover operator and the second mutation operator are musically informed. Music theory is used for finding the suitability of its generated pieces. The method starts with generating an initial sequence of pitches with a musically informed module and then calculates the suitability of the pitch sequence through the embedded rules. The employed genetic algorithm applies the variable neighbourhood search method to its generated offspring genomes for increasing their quality. Pieces can be composed in major, minor, and harmonic minor scales based on the user's request. As well as composing the main notes, the procedure generates up to three chord notes associated with each main note and plays the result in a novel multithreading environment through running four threads concurrently.
Available for download on Thursday, April 16, 2020