GROWING A SOUND SYNTHESIZER
Creation of sound synthesis algorithms using evolutionary methods
Synthetic tone experiment
A synthetic tone was created using a simple sound synthesis topology. The produced sound was fed into the Genetic Programming loop, but no information about the topology used for the generation of the sound was given to the system. The topology used for generating the tone was:
The following is a video where the evolution of the search can be appreciated. Every frame shows the "best" individual of every generation. It shows the evolved topology along with the magnitude spectrogram and the waveform, at the same time that plays the sound that it produces. Note the number of generations that it takes to converge to a "perceptually steady" answer, but note the variation of the topologies as well. The video is in different formats, and packaged/unpackaged, please select the best option for your connection.
Discussion: This is a very simple synthetic tone that was generated using the simple topology shown above. It consisted of two tones, composed of two sinusoidals each one. The total of individuals in the populations was 40, and the total of generations run was 200. It is interesting to note how at the beginning of the run, the first individuals synthesize noise, then tones with a varying number of sinusoidals, and then they converge to have just two sinusoidals (but out of tune). The GP then locks into "tuning" these two sinusoidals and stays like this for a lot of time.
"Real" piano tone experiment
A piano note sampled from a synthesizer was tried. We called it "real" because we have no information of "how" the sound was generated, just the actual sound in itself. This example is more realistic, and shows in a good way what can be expected from real sounds from the "real" world.
The example, target and evolved sounds, waveforms, spectrograms and topologies are presented in a video. Please select the format that suits you better for downloading and playing.
Discussion: This "real" piano tone starts to evolve topologies that present some of the characteristics of the real sound. Since the first generations it is easy to note a preference to reproduce the low frequency content of the tone. The first generation finds the fundamental frequency and the envelope of the target tone. The rest of the generations show nice characteristics that sound like a "string hit by a hammer", "string in a resonant enclosure", "string plus noise". The last string plus noise I would dare to say that is an attempt of filling the energy in the higher frequencies (for the MSE fitness function used), and noise is a "good" choice for this. (I plan to find a way to penalize noise in the fitness function). Also, it is possible to note that some of the piano sounds are "better" for our ears in the middle of the run, not at the end.