« IRB Expedition | Main | Save the Date! »
January 24, 2008
Noteworks - Initial network properties, audio, and rendering operational
Rob
The noteworks project is up and running at full sprint! My work thus far has been guided by a few key questions:
1. How can we take advantage of the complexity inherent to our system, and use it to create engaging compositions?
2. How can algorithmic compositional methods be improved and/or streamlined for use by the average consumer?
I've begun experimenting with algorithmic composition methods in the computer music scripting language “Max/MSP”. Thus far I've been using the "prob" object to set up first order markov chains, and the "mtof" object to convert numerical lists to frequency data. In this way I’ve been able to create evolving soundscapes that emulate traditional harmonic models.
One relatively simple way to generate complexity is to work with multiple harmonic lines (aka many sets of prob objects), each running on a metronome with a unique time. Slight time delays allow for a unique alignment each time the sequence iterates.
Another way to add a sense of depth to the listening experience is to automate volume levels sinusoidally. The sinusoidal oscillation in this case is very slow, roughly one cycle ever 10-30 seconds. The goal here is to subtly shift the focus from one melodic line to another, without the listener being consciously aware of the process. If a simple sequence containing four part harmony were to simply repeat for 2+ minutes, it could quicly become a harmonic mesh without much direction. Slight volume changes create a situation in which one voice will tug at the listener’s attention, enticing them to explore the intricacies of a given melodic line.
Max/MSP has a bit of a learning curve. It would take the layman quite a bit of poking around to stumble across the “prob” object, let alone realize its potential as a compositional tool. Though Noteworks may not offer the same extensive range of capabilities, it will be much more focused on realizing network based algorithmic composition in a highly approachable manner.
Patrick
I have been doing some searching into the audio playback in Java. As per John's suggestion, I found Java Sound to be a useful tool to have. His link to the jsresources will prove very useful in developing this portion of Noteworks.
I have gotten the audio dropped into the full network project. Right now we have a network that fires and traverses as we wanted. We ran into a problem when I added the audio in. The audio playback is a blocking call in Java and therefore the graphic of the network did not continue to traverse. John worked out the threading so that our audio processing no longer blocks the visual aspects of noteworks. Basically we are the worlds best programmers.
I have also made some test sounds to work with this project. They are just basic tones to create an arpeggio. This site was helpful to create the tones by frequency. I also registered at a place called Free Sound to get wav files.
Noteworks currently supports the following file formats:
- AIFF
- AU
- WAV
- MP3
- OGG
I have decided to ditch the JMF idea. It turned out to be much more of a hassle than it is worth. We are now using some additions to Java Sound called javazoom. Mad props to the guys at princeton who developed this.
John
Good stuff this week. I think we're pretty ahead of schedule: we have a working network architecture and nodes that play wav files (and even rest nodes). Also, the rendering of the network is coming along really nicely. Here's a screenshot:

The large, bright blue nodes are WAV nodes that are firing. The green nodes are rest nodes. The arrows that are yellow are having impulses delivered from source to target.
Still, one doesn't really get a good feel for the application unless one sees in in action. Here's a video:
In addition to sound sample nodes and rest nodes, we will be adding interactive nodes and "echo" nodes, among others.
We also need to start giving the UI some serious thought. We want this application to be so simple to use that, when you first start using it, it's as if you already [nearly] everything you needed to know to use it. That's the goal, anyway.
Nevertheless, I'm extremely happy about our project.
Posted by umbaugh at 11:54 PM | Comments (0)




