My theremin


My Theremin for 2 Persons Using Kinect

Invented by the Russian professor Leon Theremin, the original theremin was one of the first electronic instruments. The controlling section consisted of two metal antennas which sense the position of the player's hands and control oscillators for frequency with one hand, and amplitude (volume) with the other, so it can be played without being touched. I always wanted to have an instrument that you can play with your whole body. The idea was to create a digital apparatus that can be influenced by the movements of 2 or more persons, interacting with each other through musical 'sentences'.

The kinect is the ideal system to realize such an idea. It is programmed in C# using the Microsoft Kinect SDK. The system consists of two parts, one that translates the positions of the hands into musical values and one that sends out midi signals separated by different channels (midi channels 1 - 4, in this case). The signals were routed by an internal midi-router like LoopBe and sent to any softsynth. If you put your arm against the side of your body, the music stops. The more you lift your arm, the higher the tone. If you leave your arm in that position, the tone stays on.

This is the first trial, but it is very popular among my guests. I regard it as a starting point for the development of much more complicated 'instruments' with more degrees of freedom. My program produces midi-signals in one defined key. The next step is to add the possibility of key modulation by interpreting the distance to the person, e.g. using the circle of fifths. Also controlling the dynamics of sound generation is desirable. The kinect system is even useable in darkness, this way you can concentrate on the dialog of musical phrases.

I think in the future we possibly can watch ballet dancers playing concertos by their own movements. New esthetic expressions are realizable by gesture control. You are conductor and instrumentalist in one person.

The sources are available to download:

Here you can watch how it works: