Sunday, December 18, 2005

Final wrap up

Things kind of worked out in the end. My final project was not quite what I was hoping it would be, but I got a lot closer than I thought I would. It was difficult getting back into things, and getting my head into the right space. Once I did, however, I really enjoyed the challenge that programming presents. It's an odd mix of art and logic. I had never realized that programming was like that.

I felt I was successful in creating an entity that responded to the input of the maracas, but not so with getting the entity to respond to the rhythms being generated. Using the FFT spectrum, I selected one band of the spectrum that seemed to be activated by the maracas but had little response to ambient noise. Using this isolated band I was able to populate the arrays and variables that animated the onscreen entity. This produced a direct response to the maracas. In addition, I added a volume filter to the code, further cleaning up the input. Unfortunately, due to time constraints, I used a directional microphone rather than adding the pick-ups directly to the maracas as originaly planned.

Detecting rhythm was a much harder thing to do than I had anticipated. It really requires more sophistication than my limited programming experience can handle. There are a lot of things that go into the equation that I couldn't control, like the sample rate, for instance. I would like to try to write some code that was modeled after a peak meter to fake rhythm detection, and see if that would give me the effect I was hoping for. This should also keep me busy over the long winter break.

Tuesday, November 29, 2005

Señor Coconut


This project is intended to explore human computer interactivity in an easy and, hopefully, fun way. Using maracas (simple percussive instruments) as an input device, the user will be able to animate an abstract entity on a computer display. The entity’s color, shape and movements will be dependent on the rhythm the user shakes out of the maracas. The connection between the user and the entity will be similar to that of a musician and an audience, or to a dancer and music. With any success, the user will find an ideal rhythm that will cause the onscreen entity to flourish.

System Description

The system is made up of four parts: the input device, a microcontroller, a PC and a display. The input device for the system is a modified pair of maracas. Embedded in the maracas are piezo sensors, which will transfer the movements of the maracas into an analog signal. These sensors are quite sensitive and will return a steady stream of data to the microcontroller. The microcontroller will act as a filtering agent, converting the data into a coherent stream that can then be fed to the PC via a serial connection.

The PC will run the java applet (created in Processing) that will convert the data sent from the microcontroller into an animated entity. The entity will react to the changes in the motion of the maracas by morphing its shape, color, size and position. I hope to create some sort of abstract nebulous form that has a jellyfish quality. The final part of the project will be to display the applet, and have the user interact with the entity. My goal is for users to understand the connection between their movements and those of the kinetic entity’s, so that both can engage in a rhythmic dance.

Cha! Cha! Cha!

The Plan

- Modify one pair of maracas to house piezo sensors

- Develop code for microcontroller to convert and filter analog signals as well as outputting data via serial port.

- Develop processing code to create an interesting entity that relies on variables provided by the serial feed.

Saturday, November 12, 2005

Midterm Project -

The idea of my midterm project was to create a maple seed designed with a circle and an ellipse. The seed would be animated to rotate, and then rotate around itself in a spiral. Once this was accomplished, I planned to make the seed into an array, so the seed could be produced many times. As the seed would be twirling around, the scale function could be used to give the illusion of the seed falling through space. This effect might also work by changing the color slightly with every revolution, making the seeds recede into the background. Adding some maple leaves in various shades of green and red would complete the autumn scene.

I had hoped to add some user interaction into the project. I wanted to tie the creation of the seeds to mouse button action. It would have been nice to develop a wind effect as well, so a user could “blow” the seeds from side to side by moving the cursor.

I had a really frustrating time working on this project. I failed completely to move beyond the most basic steps. I managed to get the seed to rotate, but then could never get it to spiral. It seemed to me that in order to get the action that I desired I would need two rotate functions. When I added the second function (the spiral) to the first (spin), it always failed to work as I anticipated. If I had something approaching a spiral, the seed’s rotation would disappear. It was maddening. Adding in the leaf pattern (created in Illustrator) made the seed look a little strange because it was not as well rendered. The levels of detail or abstraction didn’t match, making the entire piece feel disjointed.

Link to MidTermProject