A Method For Sound Synthesis Based On The Evolutionary Computation of Genetic Algorithms
A Method For Sound Synthesis Based On The Evolutionary Computation of Genetic Algorithms
A Method For Sound Synthesis Based On The Evolutionary Computation of Genetic Algorithms
ABSTRACT
A new method for interactive sound synthesis based on the application of genetic algorithms is presented.
This method generates sequences of waveforms through the application of genetic operators on an initial
population of waveforms. The waveforms are suitable to be played by a conventional wavetable synthesizer
engine. We describe how the waveforms can be treated as genetic code, the fitness evaluation methodology
and how genetic operations such as crossover and mutation are used to generate new waveforms. Finally,
we discuss the results evaluating the generated sounds.
INTRODUCTION
As it is seeing in late researches of electronic music, genetic algorithms (GAs)
have been consistently applied to generate evolutionary manipulation of musical material.
In his work, Koza [12,14] defines genetic programming as a domain-independent
problem-solving approach in which computer programs are evolved to solve, or
approximately solve, problems. Garcia [16] is being working with GAs to solve the
problem of automating the design of the sound synthesis techniques and sound
synthesizer topologies. Biles [4] presented a genetic algorithm-based program that
mimics a student learning to improvise jazz solos under the guidance of a human mentor.
In Horowitz’s [5] development, an interactive system uses GAs to develop a criterion for
distinguishing rhythmic patterns producing a large number of variations. We have also
studied applications of GAs to interactive composition [6]. Similar to the approaches
described above, our previous research used MIDI data to control music events in real
time. Yet, using a different heuristic, we created a system named Vox Populi [7], a hybrid
system composed of an instrument and a compositional environment. Vox Populi
produces sounds moving from clusters to sustained chords, from pointillist sequences to
arpeggios, depending upon the number of chords in the population, the duration of the
generation cycle, and drawings made by the user over a graphic interface (GUI) control
pad.
Evolutionary Computation is being used by Johnson [11] to develop a computer
system for sound design. Roads [14] used genetic algorithms in granular synthesis to
facilitate the regulation of its parameters. It is also employed in Computer Graphics to
create scenes and animations [10]. In these applications the rules are learned by the
system through its interaction with the user as described by Fogel [9]. Since it is, in
general, difficult to combine quantitative and qualitative descriptions of a given sound,
we apply the concept of Evolutionary Systems to develop a methodology for Timbre
Design. This was named as ESSynth Method and is the focal point of this paper. ESSynth
uses a set of Target waveforms to describe a timbre tendency generated by, from an initial
population of waveforms, new variants (generations) “similar” to those ones in the target.
This similarity is measured by evaluations of a Fitness Function. From an algorithmic
point of view ESSynth can be seen as a man-machine process that uses an implicit set of
rules for generating waveform variations. The main goal of this research is to formulate
robust mathematical and computational models for measuring waveform similarities and
to define genetic operations such as crossover and mutation (see definitions below) to
operate as waveform transforms. By controlling the Target Population as well as the
Initial Population, it is possible to create organized sound patterns or, at a higher level, a
musical composition. For the latter, an external device linked to the ESSynth such as a
wavetable engine will be necessary, to playback the musical sequences in real time.
Figure 1. Basic control structures of the ESSynth. w(*,n) denotes the best waveform
of the n-th generation sent to the wavetable buffer.
All waveforms are normalized as floating point arrays with 1024 values defined in
the real interval [-1,1]. T is defined by the user and B(0) can be given by the user or
generated randomly by the computer.
segment S(n,i)
Figure 2. Diagram of the crossover operation in which a segment extracted from the
parent waveform and defined by k1 and k2 is mixed with an equivalent segment of a
waveform from B(n).
Similarly to living organisms that reproduce through meiosis, our crossover
operation mixes the waveform codes, which are B(n) elements. In order to get better
adapted individuals, they are crossed with w(n,*). This can be seen as a kind of waveforms
natural selection. As the user can interfere any time, we better call it a driven genetic
selection. For each generation the best waveforms are sent to a sound output (wavetable).
This makes ESSynth an excellent tool for real time synthesis. The user can manipulate
the Target set as well the Initial Population in order to get a musically significant
sequence of waveform patterns.
The mutation strength is controlled by parameter b in the real interval [0,1]. The
closer is b to 0 the weaker is the mutation. As b gets close to 1 the mutation gets stronger.
Notice that ESSynth Mutation Operation the can be seen as a wave-shaping process
where the waveforms are modified by a random waveform in an amount given by the
Mutation Coefficient.
Pattern
ARTICULATION UNIT Articulation
N Control:
One-shot / looping
EG default ADSR
Intensity LFO
(tremolo)
Sound Pattern
PS LFO (vibrato)
Note ON/OFF
MIDI
Note Velocity
Controller
Note (scale)
After Touch
Modulation etc..
There are two major sections in the wavetable synthesizer: the look-up table and
the engine. The look-up table is the heart of the synthesizer that contains the population
of the waveforms. The engines takes care of the access and control of the waveforms
within the look-up table throughout articulation instruction coming from the MIDI
controller.
The major advantage of the wavetable is the way the information of each sound is
organized and stored. This allows to save a great deal of memory while making the sound
very realistic and easy to control. We aim to implement and present in further works the
whole system compounded of the ESSynth generating waveforms for the lookup table of
a wavetable synthesizer engine controlled by a MIDI device. For now we present the
results of the ESSynth waveform manipulation of a population of waveforms that is
going to be in further researches the lookup table of a wavetable synthesizer.
ESSynth Examples
Ind Population Description Waveforms in the Frequency Distribution
ex population (Hz)
01 Target Waveform 05 100, 200, 300, 400, 500
02 Random Distributed Sine 10 From 180 to 16,000
Waveforms
03 Harmonic Distributed Sine 10 100, 200, 300, 400, 500…
Waveforms 10,000
As shown in Fig.3 and Fig.4, the method converges making erosions in the
waveform population produced by the Crossover Operation. Thus, the sound envelope
produced by ESSynth starts with strong amplitude followed by a smooth decay, as
instrumental sounds behave. This sound is also dynamically changed in its spectral
contents due to the Mutation Operations.
Figure 3. 3D plot of the populations used in the examples. The plot on the
left side is the Random Distributed Sine Waveforms population. The plot in the
right side is the Harmonic Distributed Sine Waveforms population. The X-axis
displays the 1024 values waveform. The Y-axis displays the waveform pattern in
an increasing order and the Z-axis is displaying the samples amplitude in the
interval [-1, 1].
[1] Schaeffer, P. “Traité des objets musicaux”.: Editions du Seuil. Paris 1966.
[2] Risset, J.-C. 1991. “Timbre Analysis by Synthesis: Representations, Imitations, and
Variants for Musical Compostion”. In Representations of Musical Signals, ed. De Poli,
Piccialli & Road, Cambridge, Massachussetts: The MIT Press, ISBN 0-262-04113-8, pg.
7-43.
[3] Smalley, D. 1990. “Spectro-morphology and Structuring Processes”. In The
Language of Electroacoustic Music, ed. Emmerson, pg. 61-93.
[4] Biles J. A.. GenJam: “A Genetic Algorithm for Generating Jazz Solos” Proceedings of
the 1994 International Computer Music Conference, (ICMC’94), 131—137, 1994.
[5] Horowitz D., “Generating rhythms with genetic algorithms”. Proceedings of the 1994
International Computer Music Conference, 142 – 143, 1994.
[6] Manzolli, J., A. Moroni, F. Von Zuben & R. Gudwin. 1999. “An Evolutionary
Approach Applied to Algorithmic Composition”. Proceedings of the VI Brazilian
Symposium on Computer Music, Rio de Janeiro, p. 201-210.
[7] Moroni, A., Manzolli, J., Von Zuben, F. & Gudwin, R., 2000, “Vox Populi: An
Interactive Evolutionary System for Algorithmic Music Composition”. San Francisco,
USA: Leonardo Music Journal - MIT Press, Vol. 10, p. 49-55.
[8] Fogel D. B.. “Evolutionary Computation - Toward a New Philosophy of Machine
Intelligence”. IEEE Press, USA, 46 – 47, 1995.
[9] Fogel, James D. Andries van Dam, Steven K. Feirner and John F. Hughes. “Computer
Graphics Principles and Practice”, Addison-Wesley Publishing Company, p. 1018, 1996.
[10] Polansky, L. 1996. “Morphological Metrics”. Journal of New Music Research, 25,
pp. 289-368
[11] Johnson C. G.. “Exploring the sound-space of synthesis algorithms using interactive
genetic algorithms in G. A.” Wiggins, editor, Proceedings of the AISB Workshop on
Articial Intelligence and Musical Creativity, Edinburgh, 1999.
[12] Koza, J. R., Bennett III, F. H., Andre, D., Keane, M. A., Dunlap, F., "Automated
Synthesis of Analog
Electrical Circuits by Means of Genetic Programming," IEEE Transactions on
Evolutionary Computation,
Vol. 1, NO. 2, July 1997.
[13] Cheung, N. M., Horner, A., “Group Synthesis with Genetic Algorithms,” Journal of
the Audio
Engineering Society, 44(3): 130 –147, 1996
[14] Roads C. “Genetic Algorithms as a Method for Granular Synthesis Regulation”.
Proceedings of the 1993 International Computer Music Conference, 1994.
[15] Koza, John R.. “Genetic Programming”. Encyclopedia of Computer Science and
Technology. 1997.
[16] Garcia, Ricardo A. “Automatic Generation of Sound Synthesis Techniques”.
Proposal for degree of Master of Science. MIT – Fall 2000.