To say that the new grammatical multi-state engine blows previous analysis engines clear out of the water is an understatement.

Here are a few of gMSE's numerous powerful features:

  • Variable timescale analysis
    • Adjustable quanta
    • Adjustable grouping width
    • Adjustable abstract counters
  • Power-based reconstruction
    • Single parameter controls variability
  • Relative chord analysis
    • Reads chord and key data from MIDI file
    • Records words in offset form
    • Records chord state data in parallel with the other analysis factors
    • Reconstructed patterns behave differently based on the progression
  • Absolute pitch analaysis
    • Percussive instruments
    • Disregards chord and key information
  • Completely scalable and expandable analysis factors
    • n-th order analysis
    • Only limit on analysis factors is CPU time
  • Simultaneous multi-track analysis
    • Can perform analysis on an arbitrary number of tracks, storing information unique to each
    • Represents the first multi-channel plugin ever to grace mGen's plugin library
    • Great for multiple-hand piano parts, multiple-instrument auxiliary percussion, etc.

With gMSE having all of this power, it has become very clear to me that the bottlenecks in mGen are now the structure and progression modules which are both, at the moment, fixed in a 4/4 time signature.  This glaring, repetitive time signature doesn't do justice to the aforementioned variable timescale capabilities.  These two plugin types will be my next target for re-writing in c++.  They will require expansion of the new mGN library to allow saving of complete MainBlock data, rather than just loading.

All in all, I'm very excited about gMSE's performance over the past week and have a strong feeling about its future as both a percussive and melodic plugin.