GROWING A SOUND SYNTHESIZER     

Creation of sound synthesis algorithms using evolutionary methods

By: Ricardo A. Garcia rago@ragomusic.com

In a nutshell:

Approach:
The proposed approach represents the Sound Synthesis Algorithms (SSA) as topologies, and uses evolutionary methods (i.e. Genetic Programming) to evolve populations of "candidate solutions".

(tree representation of a Sound Synthesis Algorithm)

(topology graph  representation of a Sound Synthesis Algorithm)

 

Genetic Programming:
A population of topologies (individuals) is evaluated every generation, and a fitness value is assigned to each one of the individuals. A new population is created by probabilistic selection of the best-fitted topologies from the last generation. Genetic operations are then performed on them to create new "improved" individuals.

In this approach, each individual is modified in two stages:
1. The actual topology layout is changed (by using genetic operations)
2. Its internal parameters are optimized for the given target sound

Uses:
If you have a SSA that reproduces a particular sound, several things can be done:

Example: evolution of a SSA for a piano note (C3)
In the figure sequence it can be seen the waveform, magnitude spectrogram and topology for the best individual of some selected generations. Note that the topologies vary drastically until the solution converges to a steady configuration. The fitness function applied measured the analytical distance of the magnitude and phase spectrograms to those of the Target sound.

TARGET
Generation 0
Generation 7
Generation 9
Generation 29
Generation 99
Generation 199