hide random home screenshot http://nmt.edu/~jefu/notes/notes.html (World Wide Web Directory, 06/1995)

Genetically Programmed Music

What this is

This is an experiment in trying to evolve programs that write "music". It uses genetic programming to evolve expressions for note length, amplitude, frequency, duration and the spacing between notes. It plays music for users who can then VOTE! for the different sounds produced. Using the votes received, the program generates a new set of sounds by crossover and mutation from the current generation.

This program is still being developed so there may be bugs and problems. Please report any such by email to: jefu@nmt.edu.

How to use this

Your Web interface must be capable of playing .au files and have forms support. If that is the case, then click on the button (where it says "face the music") below and you will get 6 musical "selections" to evaluate. Each of these will play about 10 seconds of "music". You can then rate the squares with the menus beside them - 0 is the worst and 10 the best (all ratings are relative).

Finally, click on the "submit" button to send in the ratings. You are actually seeing only a subset of the noises computed, so you can vote, then get a new subset the next time you load the page. There are a total of 36 sequences per generation, When all 36 have been voted on, the program computes a new generation from the current set of ratings.

Ick! This music is AWFUL!

The current generation is evolved from previous generations according to the votes received here. If you dont like the music, try again in a bit and maybe it will have changed. Also, every 50-100 generations I'll be replacing things with a completely new run.

Caveat!

I've been told that some (at least) proxy servers wont cooperate with this.

Click to

Thanks

Thanks to all the people who voted for experiment number 1. At 102 generations it has been retired. The final noise files from that experiment are available in here.

More thanks to everyone who worked on experiment 2. This one was retired at 52 generations. The final noise files are available in here.

The current experiment used inputs from a single user running the program interactively as well as the results of the second experiment as seeds for the first generation.

Curious about how this works and how it came about? This is a paper I'm hoping will get (someday) published on some facets of the experiment.

You can see some of the code that actually makes the noises in .