grant opportunities [collaborative spaces]

A Digital Media Commons program to fund student research on the use of digital media in collaborative learning

April 09, 2008

Noteworks Demonstration

This past weekend, we had the Noteworks demonstration in the central collaboration area. I think that it was a great success. People really got into it!

Here's a video of the setup. We linked the six machines up into a gigantic network. That is to say, the network on each machine actually hooks up to its neighbors networks via an ethernet hub. This represents about a 700 node network.

Bluestream Keywords: Noteworks Demo Setup

I (John) also showed off my Michigan-shaped composition. Definitely the worst-sounding composition, by far, but we got the best video of that one. Probably because I wasn't the one taping.

Bluestream Keywords: Noteworks Michigan-shaped

We're waiting for some other video to show the other presentations. When it becomes available, we'll post it here.

Thank you to all those who attended!!

Posted by umbaugh at 09:16 PM | Comments (0)

April 02, 2008

Bedtime Music - Making use of stochastic and echo vertices

Rob composed something really interesting with the latest build of Noteworks today. He calls it "Bedtime Music." I don't know if that's an official title, but it certainly works for me.

Bluestream keywords: Bedtime Music

Here's Rob's description:

Put this on for a while as you're tuning out for the night (the motor is @ the bottom). As you can hear I was very much inspired by John's work, but this has an open fifth as the central theme. The general movement is upwards and to the left... and then meandering back down.

Rob makes really good use of stochastic vertices - particularly in conjunction with feedback loops. Sometimes the loop feeds back into itself, and sometimes it feeds into a [set of] sink rest vertex [vertices]. I had some of these same structures in my last (much less interesting) composition; it's interesting to see the patterns/tropes that emerge from the fundamental node types. Same with the motor, as Rob has characterized them - the two rests pointing towards each other. They drive the rest of the piece.

The echo nodes (i.e. the blue nodes with the letter E inside them) are something new this time. The idea is that an echo expresses in the same way that the calling node (or the caller's caller, and so on if applicable) expresses. The interesting part, however, is that these echo nodes can effect a change on those input nodes - for example, transposing the input key, or increasing/decreasing the volume or duration. Rob uses this to really interesting effect to construct a simple subnetwork that kind of generates [recursive] thematic motifs.

Patrick was pretty excited when he saw Rob's work this evening. He IMed me:

I have been listening to [Rob's composition] for like 20 minutes.... [I]t has been super different the whole time i have been listening to it.... [I]t is like someone is performing for me.

This notion fascinated me. In a sense, we are not creating compositions with this software; we are abstracting one level higher, where we're designing a composition embedded with its performer, in that we're specifying constraints on how a performer (read: stochasticity) can interact with the network. In fact, I hesitate to call these creations compositions, because they're more than that; perhaps I should start calling them, in earnest, Noteworks. Anyway, it's like we've successfully broken down an artificial barrier between performance and composition. Or something close to this.

The fact that Patrick could listen to a network that was ostensibly so simple - and yet derive enjoyment out of it for twenty minutes and more - tells me that we're really on to something pretty incredible here. I mean, a lot of the credit has to go to Rob's talent as a composer, for sure. But all of us have been incredibly surprised and pleased at our success in designing a tool in which the "core mechanic" is to define the composition as a set of relationships between sounds.

Also: we finally have the Internet nodes implemented - though they were not present in the above notework. Internet nodes allow you to connect noteworks over the Internet - effectively expanding your notework across machines and constructing a far more sophisticated soundscape.

Posted by umbaugh at 07:31 PM | Comments (0) | TrackBack

March 13, 2008

Final Presentation and Demonstration

The Noteworks final presentation is scheduled for April 4th and 5th in the Central Collaboration Area in conjunction with Ouroborous who is using the Video Studio and the hallway leading to the Video Studio.

Noteworks will need 6 “kiosks” set around the Central Collaboration Area. Each kiosk will contain a small table, a Windows OS computer with speakers, keyboard, and a mouse, a projection screen and a projector with rear-projection capabilities. The user at each kiosk will face away from the center of the room as they interact with the Noteworks program. The idea is to have the projection on the screen mirror what is on the computer screen, but have the actual computer screen out of view. The projectors will also be out of view if we can hook them all up with rear-projection. The user will interact using a mouse placed on a small table in front of the screen. The final piece that we need is a switch with 6 ports and 6 Ethernet cables, so we can network the computers together.

Breakdown of equipment:
6x small tables
6x windows OS computers
6x stereo speakers
6x mice
6x keyboards
6x projector screens
6x projectors with rear-projection capabilities
1x switch with 6 ports
6x Ethernet cables

The permanent record, or “wrap”, for Noteworks will include the piece of work that we present to the event attendees. This could also include a piece that audience participants produce each night of the demonstration. We will also include a manual, which will be a set of instructions on how to use the program, and what capabilities the program has. In addition, we can describe the process of creating the program from conception to application, including hurdles we faced as programmers, musicians, designers, and a team.

Posted by dapafi at 03:00 PM | Comments (0)

February 18, 2008

Noteworks - Update + Q & A

We are now able to drag and drop audio files directly in to the interface, save and load compositions, and add, delete, and connect nodes in the UI (hooray). John has informed me that we’re exploring the possibility doing beta releases with the JNLP framework. So if you’ve been following the blog and are interested in getting some hands on experience, you’ll soon be able to download the app and try it out for yourself! And if you’re interested in getting involved you could send us your questions and comments. We’re not there just yet though, so hold tight.

Last week I spoke of what Noteworks won’t be (a revamped version of Max/MSP, Reason, or Logic), this week I’ll focus on what it will be. Underneath the hood, noteworks will be more closely related to current composition software such as Finale and Sibelius. The primary focus will be handing MIDI data, but most audio formats will also be fully supported. If you’re interested in what features might be ready for the August release, you should have a look at the itemized task list:

http://noteworks.pbwiki.com/Rob's+Priority+List

Q: What will noteworks do that other pieces of software can’t?
A: Noteworks will allow the user to write pieces of music that evolve over time, and features such as stochastic nodes will enable the user to think in terms of probabilities and tendencies. Rather than creating one composition at a time, a single network will potentially generate hundreds (of thousands) of unique compositions. There may be several ways in which a chord structure could potentially evolve, and theoretically a listener could set a network in motion and allow it to unfold for days on end without hearing every possible combination. Once more, the instrumentation could also be programmed to vary algorithmically over time. At any point while the composition is playing back, the user will be able to begin writing the MIDI data to a file. They could then import this data into Finale and print out a piece of sheet music, or into Logic and spit out a roaring synth lead.

Q: I’m not a composer, neither am I very tech savvy, is noteworks for me?
A: Yes! We’re coding in Java, which is an interpreted language, so both Mac and PC users will be fully supported. Noteworks is going to be a lot of fun. I came to this realization when I started scheming up ideas for tutorial patches. I’m hoping to fuse learning, creating, and having fun into one activity. The user will be tasked with increasingly difficult goals that will require ever-greater leaps of imagination. It’s the “AHA!” moments we’re after. For example: (spoiler alert?) the user may need to realize they can create the entire left hand part of heart and soul by using echo nodes to transpose a single chord. Ideally, the user will learn the entire app without realizing they're using a piece of composition software. By the time the user finishes up the tutorials, they’ll not only have begun creating works of their own, they’ll (hopefully) be brimming with ideas. In short: I’m looking to build a piece of software I can take home to my parents.

If you have any questions (general or specific, basic or advanced) please leave a comment and I'll try to address them in future posts.

-Rob

Posted by rlalexan at 10:48 PM | Comments (0)

February 04, 2008

Noteworks - The Visual Metaphor

Quick Update:
We’re currently bringing the UI up to speed, users can now zoom in and out with the mouse wheel, and move the view within the window! Ease of use will increase exponentially from here on out as composing moves away from the code level.

Not so Quick Update:
Our design review stirred up a number of thought provoking questions, and I believe everyone on the team was amazed by the sheer variety and quality of comments / suggestions. It’s all too easy to become short sighted and single-track minded with any project of this magnitude. If there’s one word that would best describe the piece of software we hope to create (and one word I’ve overused in my blogging to date) it’s “dynamic.” The environment from which this project emerges could not be any less so, if it’s to be successful.

The discussion tended toward the subject of what sort of visual metaphor’s we’d be invoking. Will the distance between two nodes represent the delay between them? Will louder nodes be larger? Will melodies and instrument timbres be represented by different colors (a common synaesthetic phenomenon)? Could waves propagate outwards from firing nodes and amass in swirling vortexes? These are all valid questions, however, thus far we’ve been focused on the musical aspects of Noteworks, and haven’t devoted as much time to design aesthetics.

When I began working with the computer-music software package “Reason” I was so sold on the studio rack metaphor that I took it for granted when I pushed tab and “took a look at the back of the synths,” the chords jiggled and swung as I re-routed the wiring. Even though this was a new piece of software, I was immediately able to understand how routing worked because I applied my knowledge of how to route physical devices.

When I began working with Logic Pro I was immediately drawn to the synthesis and effect modules not only by their sound, but also by their look (which I will admit, though it may reduce my credibility with the audiophiles). The synths have a polished, racecar like finish. Switching audio filter modes between parallel and series (on the ES2 synth module ) causes a central disk to rotate around in a way that conjures up images of the star-trek enterprise. It’s a pleasure to watch, and the interface begs to be interacted with. Bottom line: the interface can make or break a piece of software.


This is either a screenshot of: A. Sculpture, one of the many synth modules in Logic. Or B. A time machine, sent back from the future.

Our current situation is addressed in one of my research papers for Prof. Sheila Murphy’s course on Digital Media Theory:

“While advances in technology have allowed for increasingly precise levels of control, ease of use has always been a top priority for software engineers. This becomes especially apparent in applications that generally call for a high level of creative freedom… The ability to digitally sculpt sounds has allowed composers a higher level of control over sonic spaces than was ever possible through common music notation methods. However, as rhythmically driven genres of computer-music have been assimilated into mainstream listening environments, the production tools have undergone a similar commercialization. This commercialization is seen as a forfeit of precise control of programming languages for the functionality and accessibility of graphical user interfaces...

…While analyzing a computer-music production interface such as Reason, it is easy to lose a sense of creative potential that has been rendered possible through computer technology. The user interface is seamless to the point that the user potentially realigns their expectations of what is possible in a digital system with that of a physical system.”

To address the questions I raised initially, I’d love to see a tight visual correlation between what’s seen and what’s heard, but not at the expense of stifling the creativity of the user. The million-dollar word here… options. A relevant example: spell check and auto formatting in Microsoft Word. It’s great when Word indents numerical lists exactly the way one would like it to, or when it automatically corrects spelling mistakes that would have gone un-notice… It can be a huge timesaver. The flipside of the coin: it’s equally frustrating when word auto-formats when the user has no intention of doing so. If I didn’t have the option of turning off auto formatting, I’d have pulled out half my hair by now.

It was mentioned during the design review that it’s tricky to design software easy enough for a child to use, with advanced functionality for the expert (die-hard) user. Children all over the world can use Word, but it’s also the go-to app for many corporations and higher learning institutions. So is word a success story then? Well, Word conjures up the “piece of paper” metaphor. I used to draw all over the paper when I was young, where’s the “doodle” tool? I used to love making paper airplanes, where’s the “fold this document” command? These functions must not have been deemed important enough to be included within the scope of the visual metaphor.

The reason many people haven’t noticed that Word doesn’t have a doodling tool is because users quickly begin to think within the scope of the application they’re sitting in front of. Instead of “what’s possible?” the question becomes “what’s possible with the tools I’m currently using?” I’m not ready to put a cap on noteworks capabilities; similarly, I’m not ready to commit to any visual metaphors. Although, I am wondering exactly how a “fold this composition” tool would work…

Noteworks isn’t just a different application for creating computer music; it invokes a different way of thinking that will need new metaphors. I’m not looking to re-invent the wheel by designing a sleeker, more user friendly MAX/MSP, or a more flexible Reason. I’m hoping months after noteworks is released, I’ll be able to look at the compositions of others and say, “wow… I never thought about that possibility.” I can’t say exactly which direction Noteworks is heading, but I can say I’m working with the most talented programmers on the planet. So long as we create something flexible and dynamic (bingo!) enough for the mind of a child, I think the adults will warm up to it.

-Rob

Posted by rlalexan at 03:31 PM | Comments (0)

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:

  1. 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.
  2. 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)
  3. 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)

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:

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)

GROCS
NEWS
GROCS

GROCS
Archives

GROCS '08 PROJECTS [Winter 2008]

Casepedia

Noteworks

Ouroboros

Talking Points

GROCS '07 PROJECTS [Winter 2007]

GROCS '06 PROJECTS [Winter 2006]

GROCS '05 PROJECTS [Winter 2005]

grocs.info@umich.edu
University of Michigan, Ann Arbor

GROCS
Copyright © 2004-2006.
Contact dcwebmaster@umich.edu
Powered by Movable Type 3.17
This weblog is licensed under a Creative Commons License

 

 

 

 

GROCS
NEWS

GROCS Resource Repository

Team Login

 

GROCS