hct logo part1UBC
department of ECE
HCT title
about_hctresearchpeopleopportunitiespublicationsresourcescontact
side menu top
music and sound
art and performance
physical interfaces
modeling
graphics
side menu end
hct logo part2
Expression of Evolution Through Sound
A jMax genetic algorithm object
ETS A Project by
Steve Oldridge
Sidney Fels


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 SamplesAudio 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 CodeSource 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 SystemsAn 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


Last up-dated: 04/05/2002
© 2002-2005 HCT
about_hctresearchpeopleopportunitiespublicationsresourcescontact