I’d like to create a plugin for DAW’s and/or an iPhone app that generates chord progressions genetically. This would start with a large database of chord progressions from all types of music that I will accumulate.
Algorithm
- initial population is a random selection of progressions from the database
- initial crossover will happen at random from initial population without fitness to generate something for the user to listen to
- fitness will be two parts: 1. user will listen and rate how the progression sounds. 2. chord progressions adhering more closely to voice leading rules will receive higher fitness
- mutation will happen to random parts of the population with a markov chain analysis of the entire database
User Interface
- knobs: 1. evaluating fitness, 2. changing tempo of chord progression (playback), 3. changing rhythm (playback)
- buttons: 1. evolving to next round (will evolve only once then loop new chord progression), 2. starting over with completely new population, 3. adding current chord progression to database (database evolves too)
- screen for feedback
Here is a quick initial UI mockup:


