« Save the Date! | Main | IRB Update »
January 28, 2008
Noteworks - managing exponential growth
Any situation in which a node is triggering more impulses than it receives results in a system that grows exponentially. This is something we’ll be able to take advantage of, and exploit towards our own ends. Rather than starting with a stable system, and racking our brains as to how to make it generate more dynamic and complex compositions, we’re starting with a system which grows quickly and non-linearly, and finding ways to control this complexity (which, in my opinion, is a much more enjoyable way of doing things).
Here are some ways we’ve drummed up for keeping the system in check:
- Inhibitor Nodes – Nodes that need to receive a set number of impulses before triggering. This could be utilized to emulate a time signature. Example, 4/4 time signature could be emulated by having a series of nodes repeat 3 times, allowing the inhibitor node to fire and add a subsequent layer. Such a node should have an option for whether or not it resets after it triggers.
- Global Impulse Threshold – In order to prevent the system from crashing due to un-checked exponential growth, the GIT would limit the number of total impulses traveling across the system at once. Ideally, the user would be able to toggle noteworks into “safe mode” which would allow java to cap the number of impulses before it overloaded the CPU. For our current purposes, being able to set this number manually would be adequate. (Note: adjusting this number on the fly would be a great improvisational tool for live performance)
- Stochastic Nodes – Rather than triggering every target node, stochastic nodes will chose one node based on a pre-determined probability. The standard case would be one in which two nodes each have ½ chance of firing, 3 nodes 1/3 chance, and so on. The advanced functionality of stochastic nodes will be a talking point for the entire semester. I could easily see the team inventing a new node that would fire in a pre-determined order, I could just as easily see the team doing away with the concept of stochastic nodes and coding all this functionality into the core of every node. This is going to take some trial and error, and the errors could generate the most interesting results of all.
I don’t foresee the GIT as something people will generally be excited about. Half the fun of messing around with this sort of system comes from pushing it past its limits and seeing what sort of sounds come out. However, I believe once a user becomes adept at using the noteworks system, they’ll be better able to anticipate and handle the inherent complexity, and compositions won’t even begin to approach this threshold. As composers adjust to this new compositional model, their deepening understanding of complexity will be audible in their compositions. My undergraduate thesis was heavily focused on generating sounds through finely balanced complex systems, finding that balance is half the fun for me.
Posted by umbaugh at 11:40 AM | Comments (0)


