P-Farm is a MIDI patch-editor that uses a genetic algorithm (GA) to create new patches.
P-Farm can be used with the following synthesizers:
The program is freeware and can be downloaded here.
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. The Yamaha V50 synthesizer 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 :
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 translation function between MIDI-equipment and GA.