Friday, April 23, 2010

Final Project: Giant Mixer

For my final project, I wanted to make a series of devices that would be attached (clandestinely!) to audience's chairs in a concert venue. My idea was to make a giant mixer, so to speak: the devices would calculate the distance between each other and the resulting values would be mapped to volume and pan control. The performance would consist in me dragging the audiences/chairs around changing their spatial position and mutual distance, thereby affecting the output sound.

Following the previous project (accelerometer random melody generator), I decided to use Xbees again, this time focusing on their ability to read each other's signal strength which is relative to mutual proximity. Because the parameters I wanted to control were two (volume and pan), I figured I need at least three Xbees -- the distance between A and B will control volume; B and C will control pan. I had some initial struggles with setting up the Xbees which turned out to be an issue of firmware update. After that, I managed to read the signal strength between two Xbees in Processing.

Adding the third presented difficulties. I could not figure out how the signal strength of two Xbees, neither of which is connected to the computer, could nevertheless be read in Processing. I consulted with Tom Igoe who suggested me to read the pwm i/o pin which outputs the signal strength as pwm waveform and -- after smoothing it through a rc filter -- input this into the same Xbee's analog input. I tried this and it worked. Now the Xbee attached to the computer was reading two signals: one was the direct signal strength from the second Xbee, and the other was indirect signal strength of the third converted into an analog signal on the second.

These are the three Xbees at this point:





No comments:

Post a Comment