Grammatical Evolution engine for Tidal mini-language
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

#Tidal GE: Grammatical Evolution of Tidal Mini-Language

This is a web-based API for evolving populations of tidal music patterns. It is primarily intended for use with the extramuros framework. It uses CORS to allow any web service to grab patterns.

#Admin Guide-ish

##Current setup procedure

  1. Set up my branch of git extramuros by running the script in my git/extramuros branch.

  2. Startup the tomcat server - go to localtomcat/bin and enter `` run''

  3. Open the page - it has a standard exramuros layout, but with extra buttons.

###Tomcat notes

We're running Tomcat 7

###Compiling the parser classes

To compile java to classes, from the WEB-INF directory, do:

javac -cp ../../../../lib/servlet-api.jar *.java 

(not all java classes compile at the moment, but the ones we need do!)

There's a script in WEB-INF/classes called that does this for you - note the command is slightly different to the above - so, TODO: check which is the correct method!

#User Guide-ish

##Button actions:


sends the pattern to tidal for rendering audio


sends the pattern to the GA population. If the bucket isn't full, it is simply appended with a fitness of one.

includes a parsing step to make sure we aren't pushing rubbish into the population.


requests a mutated individual from the population


`Regulates' a pattern in the population - up increases it's regulation, down decreases it.

#Development notes

##Current todo:

##in-browser population:

The idea is that a population is run in a browser

##Notes on installing from scratch / updating


Needs to be enabled in catatlina using the following code


I've got this statement in both conf/web.xml and webapps/tidalGE/web.xml but I'm not sure which is the correct one..

###Static files

Require the following entries:



There are several in tidalGE, used for debugging and testing. Let's list them here: