beng / gor0x

create melodies without requiring any music theory knowledge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

###Install To install the necessary libraries run setup.sh

###Run

    python runserver.py

###Disclaimer This is extremely unstable right now. Most methods don't do any error checking and assume the user will supply the correct data. This will be unusuable to most people for the time being -- the prototype is still in its infancy stage.


###Description

This is a genetic algorithm that composes melodies and allows the user to play an integral part in the composition process without requiring any previous music theory knowledge. This is only possible because of how I designed the fitness function -- the user actually acts as as composer and is allowed to make a specific number of changes to the current individual. This is a unique interactive fitness function that adds a new level of user engagement and reduces user boredom.


###Genetic Algorithm (Client-side)


###RESTful API (Server-side)

The REST server, like its name, is a simple RESTful server that allows a user to query the database for musical and meta information surrouding a specific artist, song, or collection. Additionally, it allows a user to upload, parse, and/or store new MIDI files.

#####Return JSON of all artists currently in the database

  /q/artist

#####Return JSON of all songs currently in the database

  /q/song

#####Return JSON containing a population of individuals

  /q/spawn_pop/{artist}/{song}/{num_indi}/{num_traits}/{mc_size}/{mc_nodes}

#####Save a MIDI file's information and metadata to the database

  /q/save_midi/{artist}/{song}

#####Return JSON containing a Markov chain

  /q/markov/{artist}/{song}/{mc_size}/{mc_nodes}

###How to run GAServer: python index.py [port]

RestServer: python index.py [port]

MongoDB: mongod --journal --port [port] --dbpath /path/data/db/

About

create melodies without requiring any music theory knowledge


Languages

Language:JavaScript 52.3%Language:Python 47.3%Language:Shell 0.4%Language:CSS 0.1%