"Natural selection is a mechanism for generating an exceedingly high degree of improbability."
Sir Ronald Aylmer Fisher (1890-1962)
Introducing P-Farm
P-Farm 0.3, Windows version has arrived for :
What is P-Farm ?
P-Farm is a MIDI patch-editor that uses a genetic algorithm (GA) to create new patches.
- MIDI PATCH EDITOR
- A program to edit patches on MIDI equipment. In most cases a program to edit sounds on a MIDI-synthesizer.
- GENETIC ALGORITHM (GA)
- A type of evolutionary computation devised by John Holland. A model of machine learning that uses a genetic/evolutionary metaphor. Implementations typically use fixed-length character strings to represent their genetic information, together with a population of individuals which undergo crossover and mutation in order to find interesting regions of the search space. - [from the comp.ai.genetic FAQ]
What does that all mean ?
On most synths a sound is internally stored as an array of parameters. These parameters define the sound. It does not take a lot of parameters to create a huge set of possible sounds.
Only 3 parameters of 1 byte are enough to create 17 million possible sounds. My Yamaha synth uses about 200 parameters. 200 bytes are nothing when speaking of memory-storage, but they create a staggering amount of possible sounds. It takes more than a lifetime to hear all those sounds.
The problem is that a lot of these possible sounds are crap. If one should randomly create sounds, changes are just too high that the sounds are crap. Genetic algorithms have proven to be a good tool to efficiently explore these huge sets of possible solutions ( search space ). Starting with a population of good sounds, we can watch them evolve to a totally different population of good sounds
To make the sounds ready for the GA all we have to do is to view the array of parameters that define the sound as the "genetic material" of that sound. The parameters are the "genes". We then create a population of individual sounds.
The GA uses the following functions :
- Crossover : Genes from two individuals are mixed to create a third
individual. This is an important function because good genes
are reused again in different combinations.
- Mutation : During crossover some genes might mutate. This introduces new genes that might be useful.
- Survival of the fittest : The good individuals, having good genes, have a better change of reproduction ( spreading their genes ) than bad individuals.
Does it work for all MIDI-data ?
Probably not. The efficiency of a GA is largely depending on the way in
which the possible solutions are encoded. Basically P-Farm works
directly on the encoded MIDI-data so it is depending on the way the
MIDI-equipment encodes it's data. As said before, most synths encode their
sounds as an array of parameters. If these parameters are largely independent of each other we have something to work with. However, on a sampler sounds are encoded as an array of continuous data. Breaking this up, as the crossover function would do, will hardly create any good sounds. The only solution then is to use a different encoding, and use a ( time consuming )translation function between MIDI-equipment and GA.
P-Farm is still under development. In it's final form P-Farm will be a freeware program running under Windows. It will contain drivers for :
- Yamaha V50 FM-based synthesizer
- Yamaha 4-op synthesizers
- Roland Juno-106 analog synthesizer
- Ensoniq DP/4 parallel effects processor
Other programmers will be invited to write drivers for their MIDI-equipment.
At this moment there are three experimental windows versions available.
If you own a V50 or compatible synth (DX11, YS100, YS200, B200, TQ5, DX21, DX100 TX81Z or WT11), you can check out these 15 voices. These are raw sysex dumps. Let me know what you think of them.
See also
Mark Smucker's Evolutionary Computation and Artificial Life Page
John Mount's International Interactive Genetic Art II
The MIDI Farm Internet
Synth.Site
V 50 Patch Page
avg@xs4all.nl - Arno van Goch - Last update : Sep 14 1996