This page provides a cursory introduction to genetic algorithms and a brief overview of an algorithm for using genetic algorithms to directly manipulate waveforms. For a more info, please see my results page.
Abstract: The goal of this research is to explore the use of genetic algorithms to evolve waveforms. Genetic algorithms are introduced with a simple application. Past research involving the application of genetic algorithms to musical situations is reviewed. An algorithm is defined that applies genetic algorithms directly to waveforms, rather than to abstract parameters that must be mapped onto some domain. The results of this algorithm are described. A compositional framework that creates global structure by stochastically altering the environment in which the waveforms evolve is described. The success of this project is not in this algorithm's ability to make a population of sounds sound more like their environment, but rather in its ability to create novel sounds that are intimately tied to the process of their creation.
What are genetic algorithms?
Genetic algorithms use an evolutionary metaphor to evolve solutions to problems or model the evolutionary process.
- Populations of solutions are evolved in parallel.
- recombine to produce child solutions that potentially contain beneficial portions of both parents.
- Natural selection causes portions of solutions that contribute to poor results to be removed from the population.
Goal:
- The goal of this project is to produce an algorithm for directly evolving waveforms.
- The success of this project is not measured by its ability to make a population of sounds resemble some target sound, but rather in its ability to create novel sounds that are intimately tied to the process of their creation.
Algorithm for evolving waveforms:
Representation:
- Each individual's chromosome is read in directly from a waveform.
- Each segment of waveform between zero crossings is treated as a
gene.
Fitness Function
- The environment is defined by a waveform.
- The fitness function measures the difference between each individual
in the population and the target environment.
Time:
- If chromosomes are constrained to be of fixed-length, generations
are discrete.
- If chromosomes can vary in length, individuals have independent
duration and generations will overlap. Variable-length chromosomes
have not yet been implemented.
Reproduction:
- Individuals can either reproduce sexually or asexually.
- With asexual reproduction, selected individuals duplicate and offspring are differentiated from parents only by mutation.
- With sexual reproduction, the parents can either be spliced together using a fixed crossover point or a random crossover point.
- When the crossover point is fixed, the first half of one parent is combined with the last half of the other parent to produce the offspring.
- When the crossover point is random, the parents are both divided at a randomly selected point and the first part of one parent is combined with the last part of the other parent to produce offspring.
Selection of parents:
- Two parents are randomly selected from the population. Their
probability of being selected is based on their fitness.
Crossover:
- The crossover point is adjusted so that it occurs at zero crossings.
- The parents are spliced to produce an offspring. The offspring is
truncated to be the appropriate length.
Mutation
- Mutation by addition: either noise or sinusoids can be
added to a segment of neighboring genes
- Mutation by amplification: a segment of neighboring genes
can be amplified or attenuated
- Mutation by exponentiation: either noise or sinusoids can
be added to a segment of neighboring genes
- Mutation by reversal: a segment of neighboring genes is
reversed
- Mutation by swapping: two segments of neighboring genes
are swapped
- Mutation by duplication: a segment of neighboring genes
is repeated some number of times
- Mutation by resampling: a segment of neighboring genes
is resampled at a faster or slower rate
Results
Follow this link for the results of this research.