When I got my Arduino protoshield from sparkfun, I wanted to make something cool with it. And since I had seen a few Theremin projects before, and already thought about making some, I finally made one, using the Parallax PING sonar sensor. Here are some informations about how I made it. You can see all the pictures here
First, the schematics:
Here’s the commented code for the Arduino:
int pingPin = 7;
int buzzPin = 10;
int btnPin = 1;
int val;
void setup()
{
pinMode(buzzPin, OUTPUT); //set speaker pin to output
pinMode(btnPin, INPUT); //set pushbutton pin to input
}
int getPing()
{
//send a 10us pulse to wake up the sonar
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
//get the raw value from the sonar, corresponding to the
//actual time of travel of the ultrasound waves
pinMode(pingPin, INPUT);
return pulseIn(pingPin, HIGH); //return this value
}
void loop()
{
if (digitalRead(btnPin) == HIGH) //only play when the button is pressed
{
val = getPing() / 5; //you can tune the pitch by dividing by a different number
//generate the pulse
digitalWrite(buzzPin, HIGH);
delayMicroseconds(val);
digitalWrite(buzzPin, LOW);
delayMicroseconds(val);
}
}

Read more: Arduino theremin like musical instrument

