Since the conception of mGen, I have viewed the program as distinctly broken into two parts: a composition interface, and a production interface.  Strictly speaking, the part that I refer to as mGen, is really only the composition interface.  It deals with rendering MIDI data.  I also had a basic production interface working with the third-generation mGen interface that took the MIDI and rendered it in FL Studio using virtual instruments.  With the birth of the fourth-generation interface (Interface 2.0 or I2), the production interface became unusable as I didn't implement a connection between I2 and the production interface.

Back to the two-part design, I conceived not only of having a program that would generate random music, but also explore new sounds and instrumentations in order to really achieve a completely unique, random sound.  I wanted the program to pioneer new mixing effects, new arrangements, and even new instruments.  In this way, I would truly not be able to recognize any aspect of the rendered output: it would be 100% the work of the program.

I have finished coding the first interface for the second part of the program, which will be (tentatively) referred to as fxGen.  The interface is an FPC (FL Studio drum VST) exploration interface.  Basically, it assembles random drum kits and saves the presets as well as previews for each.  So I can tell it to create 100 random drum kits, leave it running for half an hour, then come back and run the rating program.  It will play previews of each kit to me and I tell it whether to keep or trash the kit, depending on whether or not I like the sound.  Playing around with it today I have already saved 20 random kits that I like.

This is really just the tip of the iceberg.  Random drum kit making is only a tiny part of what fxGen will do in the future.  It will explore new mixing effects and all sorts of new instruments outside of percussion.  In the end, fxGen will provide mGen with a huge variety of mediums for expressing new musical ideas.