Analysis of Prior Projects (NUI Assignment #6)
I am not the first person to consider turning a Leap Motion sensor into a theremin. As I mentioned in Assignment #4, there are a few prominent examples in both web apps and standalone apps.
The standalone apps are harder to evaluate, both because they cost money to buy and because their source code is not available to me. AeroMIDI (4-stars / $9.99) gives me some idea of its function in its demo video. The app actually does much more than simulate a theremin, but seconds 00:05 - 00:15 of the video show an interface that is pretty clearly thereminesque. The pitch is continuous and sounds like it is being generated by an oscillating frequency. The current note is indicated on the keys of a virtual piano keyboard alongside the some kind of interaction area. I don't care for that representation, and I think I will try to represent notes on a musical staff instead. There is no indication of how AeroMIDI would work during an actual song performance, and I suspect it would be difficult to control.
Syntheremin (3-stars / $1.99) is a more targeted theremin app. It takes the traditional theremin controls very literally, mapping pitch to the horizontal and volume to the vertical. Judging from the screenshots, this project was more concerned with the complicated "patching" system that allows for the mixing of effects than with the performance aspect. In lieu of a useful visual representation during play, it looks like they use the screen to display a "visualizer" of colorful lines. I think this is a wasted opportunity, and turns a sophisticated tool into a toy that is unsuited for real music performance.
On the web side, we have two prominent examples, both calling themselves "Leap Theremin." Created by Yu Jian Tham and (I think) (James Blaha)[http://leapgamer.com/leap_theremin], these two are very much tech demos, but they will probably prove very useful to my project due to their visible source code. Under the hood, they both use Webkit Audio, a web-based audio library accessible to web apps running on Chrome or Safari. The Blaha version should also work on Firefox because it includes a fallback to the Mozilla equivalent. These audio kits have an oscillator tool built into them which is well suited for procedurally-generated pitches.
To be honest, I could not get Yu Jian Tham's demo to work with my Leap. I didn't discover Blaha's until today, and I haven't had a chance to test it with a Leap device yet. I have looked at their visual interfaces, though.
Tham's interface displays a confusing visual scale, which presumably reflects a formula that maps vertical position directly to frequency instead of applying a regression to make a linear position change map to linear progression through the musical scale. Other than two display boxes showing the current frequency and volume for each hand, there is no other interface.
Blaha's interface is more logically designed, with pitch and volume mapped to the vertical and horizontal axes of an onscreen grid. A series of mouse-clickable buttons allows the user to change the type of sound wave. While it's nice to have consistent relative values represented on the screen, they have no absolute meaning. You could not play this as an instrument because there are no landmarks for either pitch or volume unless you somehow memorize the grid lines.