Algorithm

  • Goals
    • Improvise Rhythm
    • Improvise Harmony
    • Combine into one improv
    • Output
    • Get output from computer to Robots
  • Short-Term
    • Understand previous code
    • Set up code repository
  • Markov Graph
    • Currently can read in properly formatted text files
      • Hard to make by hand, need a generator
    • Can find cadences
    • Finds quality of chords
    • finds key signature
    • generates markov models
    • updates markov models
    • Improvements
      • Function that observes harmony(more robust)
      • What is important harmonically?
      • Non-harmonics
  • Status Report 4/28/11
    • Created a Markov Generation Algorithm in MATLAB
      • Uses code at http://kenschutte.com/midi to read in MIDI files
      • Finds probability of each 2 pitches sequence going to a pitch
      • Randomly walks the song to generate a song's pitch sequence
      • Rhythm is determined the same way
      • Problems
        • No correlation between pitch and rhythm
        • Fails on a few MIDI songs
        • Doesn't sound good
        • Doesn't handle multiple MIDI in
      • Future Improvements
        • Take in multiple midis and "combine" them
        • Figure out how rhythm works
        • Align to 4 beat phrases
    • Future Algorhythm Options
      • Jazz combo constraint based generation
      • Markov for general songs
      • Separate a song into melody, harmony, bass, rhythm
      • Some type of audience interactivity
  • Input Files
    • first line: (number of instruments) (number of chords)
    • Subsequent lines: (midi pitch) (1,0 whether sustained)
      • ex: 52 1 64 1 68 1 71 1