Abstract
Downloads
- Audio Samples
- Source Code
- Example Systems
The ETS System
Settings
Current Work
Links
Contact Information
The Expression of Evolution Through Sound (ETS) system is an exploration of the process of Genetic
Algorithm (GA) based composition. Unlike conventional Genetic Algorithm (GA) composition tools whose
goals are to use genetic algorithms to create aesthetic music or sounds, the Evolution Through Sound (ETS) system is an
attempt to express the actions of a GA in an aesthetic manner. This audification is done in the hope
that its structure forms an interesting sound experience. Individual frequencies of an ETS population
are evolved for harmonic relationships with each other, and the entire population of solutions is
played back simultaneously through the combination of sine waves. The result is a complex wave that
evolves from white noise into an interesting audibly harmonic waveform that continues to change with
time.
This web page serves as a guide to the ETS system. On this page you will find:
- A description of the ETS concept.
- Audio samples of the output by an example ETS system.
- Source code in C (major) for the ETS jMax object.
- A jMax example of a system containing the ETS object.
Downloads
| Audio Samples | Audio Samples of the ETS System |
|
| sample1.wav |
Output of the ETS system for a single generation.
|
| examplerun.wav.wav |
Output of the ETS system for multiple generations.
|
| sample3.wav |
An interesting ETS output.
|
| sample4.wav |
Another interesting ETS output.
|
| Source Code | Source Code (in C) for the ETS jMax Object |
|
| ets.c |
The ETS jMax Interface.
|
| ets_main.c |
The ETS source.
|
| ets_main.h |
The ETS header file.
|
| Example Systems | An Example ETS system in jMax |
|
| ets_example.jmax |
A jMax File containing an ETS module (lifetime of 4, population of 10) in combination with
the de-multiplexors and sine wave generators required to output audio.
|
The ETS System
The ETS system was developed in the jMax music programming environment. The core of ETS is a
genetic algorithm object capable of interfacing with other jMax objects. The object outputs several
lists of frequencies, each corresponding to one segment of the population (we'll get into this below).
These frequency lists are then de-multiplexed and sent to sine wave generator objects. The modularity of ETS makes it potentially
useful in other genetic algorithm systems. The output of the ETS system is the complex wave
created from the combination of the sine wave generators controlled by the population, along with a
number indicating the total score of the population at each generation.
Settings
To name that instantiates an ETS object in jMax is: "ets l p"
-
l : The lifetime (number of generations) an individual member of the population
lives for. Increasing the lifetime of an individual makes the system more
stable
-
p : The size (number of individuals) in each generation. A maximum population
of 25 individuals (per generation) is recommended.
The ETS object has 3 * l outputs. Outputs correspond to one of the three frequencies in an
individual's genome and to a specific generation. Below is a screenshot of the example ETSsystem available
in the downloads section.
A list containing p integers that represent the frequencies of each genome/generation
combination are sent from each output at the end of every iteration.
That means that 3 * l * p sine wave generators are needed to transform these integers
into signals.
Other system settings can only be modified through the recompilation of the source code. I'd like
to add some of these to the object instantation, and probably will in a later version.
Settings that are modifiable include:
-
Mutation Rate: the probability that the mutation operator will be applied to a newly
created member of the population.
-
Fractional Ratios: the desired ratio of fractions between the frequencies.
-
Ratio Scores: the corresponding score of each ratio.
-
Margins: the margin of deviation from a perfect fractional relationship allowed.
Narrow margins make the harmonic relationships hard to find, but the sound created is
truly harmonic. Wide margins produce cyclic patterns known musically
as beatings that, although not as harmonic are very interesting.
Current Work
The ETS system has recently undergone user testing. The suggestions of the user testing are
currently being examined and some are being implemented. Some of these suggestions include
features that would allow the system to:
- Focus in on specific frequencies or octaves using a pass-band filter.
- Control the number of sine wave generators that are output by the system dynamically.
- Filter out the noise of the system by controlling the percentage of the population
(based on score) that gets audified.
Links
The following links were useful in the development of the ETS system:
Contact Information
Steve Oldridge
Sidney Fels
|