Functional Phrase Language for Contour Grammar
Unfortunately, most of my work over the past week has been devoted entirely to the internals of Contour Grammar. The format of the data structures will completely govern the quality of the plugin's future, so I wish to spend a great deal of time and thought on the layout of the grammar engine.
A minor breakthrough (which, oddly enough occurred in an airport) did provide a boost of inspiration. One of the current problems with Contour Grammar lies in the ambiguity in defining phrases. How should phrases be picked to maximize coherence? My newest solution to the problem entails a sub-grammar that I call functional phrase language, since it uses functions to indicate derivations of new words from parent words. In this way, rather than filling phrases with a random array of words, the program will fill the phrase with a random array of functional instructions that should ensure greater coherence.
Here's an example of what a line of such instructions might look like:
And here's how the Contour Grammar engine would read and interpret the instructions:
- Draw a random word from the active dictionary, label it "1," and add it to the active phrase
- Draw a random word from the active dictionary, label it "2," and add it to the active phrase
- Take the first word, translate all pitches up 1 step, then translate all pitches up another step, and add the resulting derived word to the active phrase
- Take the second word, invert the pitches (horizontal reflection), and add the resulting derived word to the active phrase
- Take the first word, determine the maximum pitch, then translate each occurrence of the maximum pitch up 1 step, and add the resulting derived word to the active phrase
If everything goes according to plan, Contour Grammar should be off the ground and getting cold, hard results by the end of the week. As I mentioned before, I really hope to have some unique samples up for February before it comes to a close. Audible progress is real progress!