Investigation of Genetic Algorithm Methods using Audio Output Matthew Thompson Introduction Genetic algorithms use feedback resulting from evaluating data sets to optimize these data sets for the best performance as defined by the user. The main data processing is done in LISP. The creation of audio files is done using Csound. A simple shell script serves as a frontend. Background A genetic algorithm is a method of optimizing a data set by taking the existing set and combining desirable traits of members of the set. In this project, the goal was to create a data set which resulted in an acoustically pleasing melody. The initial data set used for testing is composed of randomly generated values. These are unlikely to sound particularly good, but there will be portions of the melodies generated that are desirable. By crossing set members that have desirable traits, the resulting member should create a melody that is superior to its “parents.” Basic List Crossover Method: Parent 1 Parent 2 crossover point Child 1 Child 2 Methodology Because this project was an investigation into various forms of genetic algorithms, the same basic program style was run using many different types of genetic algorithms. The algorithms differed in data structure, crossover method, and mutation method. Data was collected on the improvement of the data set over a repeated number of trials for each different algorithm. Figure 1: A screenshot of the command-line interface of the program. Output is produced by Csound as it parses the data into an audio file. Input is then entered by the user regarding the user's opinion of the audio files produced. This input is used to determine which data set members will be used as parents in the reproduction function. Matrix Crossover Method Parent 1 Parent 2