The c++ mGen Library is taking shape very rapidly. I am writing hundreds of lines of code each night in a furious attempt to get back on track with developing new and better plugins, since the month of January saw no sample clip activity. The MainBlock structure, set up to mimic the identically-named central data structure handled by the mGen framework and used to pass data to external plugins, now has full loading capabilities. In other words, output from the main framework can be read into this extensive c++ structure.

One might ask why on Earth managing to read one's own data structures should be applauded. The answer lies the differences between the AHK and c++ languages. In AHK, which the main framework uses to manipulate and write the data, the information is stored, essentially, as one huge string. I created special functions that encoded the strings in certain ways to allow them to function more like objects, but these did not actually extend the functionality of AHK, they only faciliated the organization of data within strings. Bringing the information contained within MainBlock into a c++ structure requires decoding a large, messy data string and parsing it, using the parsed data to create real data objects within structures that can be directly manipulated without string hackery.

The main point here is that MainBlock importing represents the first step in allowing external modules written in alternate programming languages to communicate with the central mGen framework, written in AHK. The next task will, naturally, be the ability to save a c++ MainBlock structure to the encoded string format that the framework expects to receive back from modules.

A visual of the exciting moment in which a full .gds MainBlock was imported into a c++ program: