2013年11月15日
今年話題のleap motionを手に入れましたので、Processing203でとりあえずテルミンを作ってみました。
leapライブラリはLeapMotionP5で、サウンドはminimです。
テルミンをエアー演奏できると思いきや、そもそもテルミンはエアーでした
スケッチ
import com.onformative.leap.LeapMotionP5;
import com.leapmotion.leap.Finger;
import ddf.minim.*;
import ddf.minim.signals.*;
LeapMotionP5 leap;
Minim minim;
AudioOutput out;
SineWave sine;
public void setup() {
size(800, 500);
leap = new LeapMotionP5(this);
minim = new Minim(this);
out = minim.getLineOut(Minim.MONO);
sine = new SineWave(440, 1.0, out.sampleRate());
sine.portamento(200);
out.addSignal(sine);
}
public void draw() {
background(0);
fill(255);
for (Finger finger : leap.getFingerList()) {
PVector fingerPos = leap.getTip(finger);
ellipse(fingerPos.x, fingerPos.y, 10, 10);
float freq = map(fingerPos.x, 0, 800, 40, 4000);
sine.setFreq(freq);
float amp = map(fingerPos.y, 0, 500, 1.0, 0.0);
sine.setAmp(amp);
}
}
public void stop() {
leap.stop();
out.close();
minim.stop();
super.stop();
}
leapライブラリはLeapMotionP5で、サウンドはminimです。
テルミンをエアー演奏できると思いきや、そもそもテルミンはエアーでした

スケッチ
import com.onformative.leap.LeapMotionP5;
import com.leapmotion.leap.Finger;
import ddf.minim.*;
import ddf.minim.signals.*;
LeapMotionP5 leap;
Minim minim;
AudioOutput out;
SineWave sine;
public void setup() {
size(800, 500);
leap = new LeapMotionP5(this);
minim = new Minim(this);
out = minim.getLineOut(Minim.MONO);
sine = new SineWave(440, 1.0, out.sampleRate());
sine.portamento(200);
out.addSignal(sine);
}
public void draw() {
background(0);
fill(255);
for (Finger finger : leap.getFingerList()) {
PVector fingerPos = leap.getTip(finger);
ellipse(fingerPos.x, fingerPos.y, 10, 10);
float freq = map(fingerPos.x, 0, 800, 40, 4000);
sine.setFreq(freq);
float amp = map(fingerPos.y, 0, 500, 1.0, 0.0);
sine.setAmp(amp);
}
}
public void stop() {
leap.stop();
out.close();
minim.stop();
super.stop();
}