...noise space for Batuhan BozkurtSubscribe to my feed!
RedGAGUI

This is the initial version. Please contact me for bugs and suggestions.
SuperCollider code is here: redgagui.zip

What?

This is intended to be a comfortable GUI for generating and breeding synthesis networks using Genetic Algorithms with Supercollider. It utilizes the power of the great GA classes by Fredrik Olofsson. The system can create synthesis networks from randomly generated genomes, and you will act as a fitness function by judging the resulting networks by listening them. Then you may add the genomes of your fittest synths to the gene pool and breed new offspring synthesis networks based on custom crossover and mutation probabilities.

Documentation:

Usage is quite easy. You obviously need SuperCollider, and you need the great RedGA classes from here. The leftmost list is the list for available audio rate UGens. The middle list is for control rate UGens and the rightmost list is for the allowed binary operators. Black means selected(and will be used while building networks) and grey means unselected. Please be aware that your UGen and binary operator selections will affect the generated network results of all genomes in your lists. A genome with a fixed selection of components always generates the same network but if you change your selections, all networks will change. So it's best to define your limited set of UGens beforehand, or your role as a fitness function won't be effective.

There are two lists in the window, acting as pools. The left pool is the random genome pool. You press generate and a random genome with the size GenSize(can be set from the rightmost controls in window) will be generated and added to the list. If you double click the generated item, the synth will start playing. right click will stop the sound. You can also use the start-stop buttons below the list. The "Print" button prints the generated synth to the post window. If you like the resulting synth, you may want to move the genome to your gene pool by pressing "Move to Pool". When you have enough synths for reproduction, press "Breed from list" and you will have an offspring generated from the parents with a recursive function in the gene pool. You can listen to the synth and judge its fitness(remember YOU are the fitness function).

The CORate parameter determines the crossover probability(0-1) of the breeding process. GenSize is, as mentioned, for generating genomes of specified size. MutRate is mutation probability(one gene gets a random treat based on the probability check). NetDepth sets the nesting depth of the synthesis network. Changing NetDepth will change the topologies of all generated synthesis networks from the genomes you have in your random and gene pools. So set it beforehand or your role as a fitness function will diminish(generated synths from selected genomes will change).

A note: Not all functionality from the RedGA classes are in the GUI, so you may also want to check the help files for RedGA classes to further tweak the parameters (spec ranges etc.).