Andrew's Final Project
I saw a lot of potential to create expressive interfaces using the golf videogame HID device with the two retractable tethers. The device reads the X- and Y-angle of each tether, as well as the length of the tether, so it can effective tell the position of the two knobs in 3-D space. From there, it is not very hard to use derivatives to keep track of some simple aspects of the knobs’ motion. I used this device to create two virtual instruments – a one-string bass, and a drum kit. The first instrument I created simulates a one-string bass using one of the tethers. When you pluck the tether, the rapid change in the angle of the string (in the X-dimension) cues a sample of an acoustic bass. The length of the tether determines the frequency of the note (by updating the rate of the sample in real-time). The main concern with coding this instrument was preventing it from cueing the sample when it wasn’t supposed to. For example, it might cue the sample twice when the string was plucked too hard, because the derivative was above the threshold for too long. I solved the problem by using a timing device so that it would not cue the sample twice within a given period of time, but the one downside of this is that it limits how fast you can play. The second instrument is a virtual drum kit. Holding the two ends of the tethers, the player can pretend to play a simplified drum set, with two snares, a hi hat, and a bass drum. When a virtual drum is hit, the z-value of the tethers decreases very rapidly, cuing the sample. The drum components can be positioned in virtual space using the x- and y-values of the tether; if both are positive, for example, that means that the tether is in the upper-right quadrant, and a given sample is cued. There are some special restrictions, though. Either tether can be used to play the hi hat (to the front-left of the player), but only the left can be used to play the primary snare (to the front-right of the player). If both tethers are to the front-right of the player, then the second snare is cued. It is important to make sure that the tethers are angled forward, or the sound won’t be cued – while this isn’t necessary for the drum kit as it is, it sets up the framework to add more components, which might be located in the other quadrants (negative in the y-dimension). There are two settings for the pedal; either it can open the hi hat, or can cue the bass drum. There are also two drum kit options, acoustic and electronic.
This is another subsection
What to include on your project page
- A description of your project
- Your code
- If it's short, you can make a new page for it like this one
- Or, if there's a lot of it, put it in a .zip file so that people can upload it.
- We suggest: put it in your public_html directory on your network drive, then make a link, e.g. to http://www.princeton.edu/~yourname/yourfile.zip. Let us know if you need any help!
- Instructions on how to run your code
- A sound or video recording of your piece. Going lo-fi and using built-in webcam from another laptop (e.g. PLOrk machine in studio B) is fine. But for audio, if you're using chuck, best to use rec.ck for writing chuck's output directly to a file.
- See directions above on putting it on your network drive and linking to it