This tool implements an algorithmic composition technique based on Genetic Algorithms as originally developed by John Holland. It does not create a composition, but drives a process over time whose evolution may be sonically interesting. As with many things, it is all about the journey and not the destination, so interesting sonic events can occur as the algorithm moves toward its goal state. This goal state and many parameters may be changed over time.
Being a tool, it does not create sounds but changes event values as it runs. !Freq1 !Freq2 !Freq3 !Freq4 !Freq5 !Freq6 event values reflect the contents of the 6 elements of each chromosome as it evolves, and are presumed to be associated with 6 tracks of an associated Multigrid. !RefFreq is used as a reference when evaluating the fitness of each chromosome and can be changed externally or in this tool. !Level1 !Level2 !Level3 !Level4 !Level5 !Level6 simply control the levels of each track by convention. The associated Multigrid tracks are selected and triggered as appropriate during evolution.
The display area shows a column for each chromosome with each of the 6 frequency components represented by a red bar at a height corresponding to its frequency, with brighter red indicating instantaneous fitness of a particular chromosome column. The yellow arcs indicate the pairs of chromosomes selected at each generation. The green box indicates the chromosome chosen to "play" at each generation, and is randomly chosen from among the more "fit" chromosomes that are the products of a previous generation.
An associated Multigrid is provided as an example (GA-test.mgd). For pedagogical purposes, this Multigrid is fantastically boring, simply playing a voice using the !FreqN values described above. You can, of course, do anything you'd like with these event values to savor the emergent sonic experience.
To run, first start the Multigrid (GA-test.mgd). Make sure, that all of the tracks are inactive, then hit play in the Multigrid. There should be no sound.
Now, start the Tool, then hit Run for continuous operation or Step to manually go from generation to generation. Note that you can click on the labels above the widgets for some additional documentation.
Enjoy the recombinant exploration!