Showing posts with label post-processing. Show all posts
Showing posts with label post-processing. Show all posts

Monday, May 25, 2009

Swing Thing

It's another landmark day for mGen, as today was the first time a post-process module was ever used in the composition process. I made a very simple swing module called Swing Thing that offsets certain notes in the composition to give it a swing feel ranging from "very light swing" to "heavy swing."

The test run sounded great after I got the math down for the swing algorithm, which took a little trial-and-error. I was very impressed with the run time; mGen was showing the swing module as taking only 6% of the total composition time, even though the module had to loop through every single generative part and modify the timing of every single note that fell on a certain beat, which seems like a processor-intensive task. Nonetheless, Swing Thing chewed through the loops in no time.

A swing module was really the only immediate implementation that I could think of for post-processing modules, but it's already proven the power of post-processing to transform the entire composition. I'm sure there will be many more plugins to come.

Tuesday, May 19, 2009

Post-Processing Functionality

I began work today on implementing post-processing modules. The mGen now loads and keeps track of an unlimited number of post-processing modules and also stores and retains the configuration data, just like generative modules.

The only part left to do is handle the actual generation, in which mGen will have to pass the entire compositional data structure to the post-processing modules and update the structure based on the output of the modules.

Unlike the generative modules, which have permission to view the entire data structure, but can only to add note data to their respective channels, post-processing modules will be granted complete read and write access to the entire set of data to maximize the flexibility of these special modules.