« Final Project | Main | Tom Hagler's MIDI Sculpture »

Final Project Documentation

Documentation on my final project, involving wiimotes and custom software.

WIth this project, I wanted to create an interactive soundscape through the use of non-traditional interaction methods. I didn't want to use buttons, switches, ranging sensors, or anything of that type. I was drawn to the idea of using accelerometers by a demonstration I saw using a MacBook Pro's built in accelerometer controlling a simple game. By using accelerometers, I could read position, rotation, and impulse data, and distinguish between all three. With one small piece of circuity, i had three separate analogue inputs that were nearly transparent to the user. This data was easliy manipulated to create sound inside Max/MS. I wanted to disguise the accelerometers inside a naturally playful object, like a ball, so viewers would feel comfortable interacting with my project and working collaboratively with other viewers to create a constantly variable soundscape.

Concept drawing:
While not a drawing of the completed presentation, it was this image that helped me fully conceptualize what I could do with the sheer volume of motion data the Wiimote offered.

The video that was captured during the presentation wasn't very illustrative of the interaction that was taking place. This video demonstrates more clearly how the motion of the controller is transposed to sound.

This is how the exhibit was supposed to look. These special beach balls didn't arrive until later on Thursday, so I didn't have them for the presentation. A wiimote would be inside each ball, along with a single glowstick.

The only hardware this project uses is standard Wii Remotes and software, so I was fortunate that I didn't have to design and construct complex circuitry. I was originally going to use an Arduino controller and incorporate a three axis accelerometer, but the accelerometers available were all very difficult to incorporate into an Arduino based project. The pins, connectors, and components were all far too small for me to work with effectively.

Picture 7.png
This is the main interface for OSCulator. The OSCulator handles Wii remote connections, reads values, and encodes that data as OSC and MIDI control information. This allows me to utilize wiimotes inside Max/MSP very easily, as Max is well equipped to work with MIDI data.
Picture 8.png
This is the Max patch I wrote to generate sound from the MIDI information flowing out of OSCulator. It handles the inputs of 4 wiimotes, and each is 'voiced' so that the sound being generated from each wiimote's inputs is slightly unique. Because I used a very simple synthesis system, the sounds were not quite as rich and distinct as I had hoped. I will improve this in the coming semester.

The OSCulator routing data can be downloaded here.
The Max/MSP patch can be downloaded here.

I have changes already planned for this project. As it stands, only the position data (relative to gravity) is utilized by the max patch. There are three additional data sources per remote (the change in acceleration is reported per axis), and I could utilize that data to alter the 'shape' of the sound produced by each remote. My limited understanding of how Max worked with VST objects and plugins made that too difficult for the timeframe of this presentation. Over the course of next semester, I hope to utilize more data more creatively as I begin to understand Max more.