Skip to content

adkatrit/melody_composer_public

 
 

Repository files navigation

this is a genetic algorithm that composes melodies.

initial population: it builds a markov model to spawn the initial population to a) slightly reduce the search space, and b) act as an influencer. the user has the ability to select x different artists, y different songs, and/or z different genres, where each of these items is a midi file. i have written a midi parser, which extracts the melody(pitch, duration) from the midi file(s) and stores it into a text file, which is then processed by the markov model.

fitness: for the time being, i am leaving this as an interactive fitness function (i.e. the user has to rate the each song), but i have added some witchcraft to reduce the amount of work the user needs to do. i also have plans for adding a neural network to act as an auto-rater. the current rating system uses jquery to add interaction to the listening part of the application. the user can move the pitches around to modify the melody to his/her liking. the euclidean distance is used to calculate the fitness value.

selection: rates are adjustable by the user on the front-end in addition to roulette wheel and tournament selection, i have added gender based-selection, which mimics rules of human society for mating. i have plans on adding grouping for clustering purposes where groups are friends and family.

crossover: n-point crossover. rates are adjustable by the user on the front-end.

mutation: rates are adjustable by the user on the front-end.

termination: rates are adjustable by the user on the front-end.

technology: python web.py html/css/jquery sql

if you have any questions and/or comments please feel free to contact me.

About

public version of my genetic algorithm that composes melodies

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 69.5%
  • Python 30.5%