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.