AlgoDrums

Here is my link to a github for a Python code repository so far

So my idea is to come up with a way to store algorithms for drum patterns. It would look something like this:

function Basic4(int option) {
     if option = "length" return("4/4 time")
     if option = "" return(drum tablature for an easy bass drum/snare/bassdrum/snare drum beat for four beats)
}

The user could construct a whole 16-bar drum solo by typing:

mysong = Basic4() + Basic4() + Basic4() + DrumFillCaliStyle()

Anyway, there are six parts (at least) that I need to perfect:

  1. Find a way to store algorithms in a database efficiently (not done)
  2. Recall an algorithms, let the user “cut-and-paste” like above to make a song (not done)
  3. Write code to turn that song into tablature (not done)
  4. Save tablature (again in a database, not done)
  5. Play drum tablature using existing samples (borrowing code from python-drums)
  6. Find cool ways of using genetic programming to modify the database of drum algorithms to come up with new patterns (the “real” goal of this project)

Resources

python-drums – A pretty good translation from drum tablature to MIDI

tabtomidi – Another tab-to-MIDI conversion program I should check out