Downloads

hw2.tar.gz - tarball containing code and XCode projects
TropHarp.tar.gz - Just the application (for use on jailbroken iPhones)


Summary

Tron Harp

As the name suggests, TronHarp is a space-age musical instrument that instantly transports you into the world of silicon-- a world populated by an insalved race of software processes that live at the mercy of the Master Control Program (MCP). You wander the copper-traced roads of Trongeekland with your trusty TronHarp, seranading the digital townsfolk and playing soft neon lullabyes to the tender and innocent dashboard widgets.


Usage Instructions

When TronHarp launches you will see only the background image. Touch two points to create a string that can be plucked by touching a third point along the string. If you pull the string before plucking it, a projectile will be created that bounces around the environment and interacts with other projectiles. The projectiles will also pluck the string when they cross its path. To erase projectiles, simply touch them with one finger.

The pitch of the manually plucked sound is proportional to the string length. Each projectile carries with it a pitch which is defined at the time of creation. Tap the (i) to see the settings menu, which allows you to enable damping, gravity, a shake-to-clear gesture, and to turn off the auto-plucking feature.

Strategy

I took the 'pile of code' strategy for this assignment, as many of the topics were totally new to me (multitouch, collision detection, and OpenGLES to start). I think that over-designing in an unfamiliar domain stifles creativity and minimizes beautiful accidents. Thus, as soon as I got some feature working I just charged right ahead to the next one despite any ugly hacks or bad coding practices previously made. Once the minimal feature set was implemented, I spent some of the remaining time optimizing and the rest refining the aesthetic experience.

Challenges

The primary challenge in this assignment was implementing collision detection and basic kinematics. I am not pleased with how either turned out. There is, however, a strange artifact of my collision detection algorithm that sends projectiles into a whirling dance. I like the way this artifact adds personality to the interaction, so I did not attempt to make the simulation perfect. Had I started the assignment much earlier, I might have been able to implement a decent physical simulation, but I am learning from this assignment and Music 420 that all forms of physical modelling are hard!


After you've used this amazing instrument of The Future,
what could possibly be next?



Did Somebody say




Future?