Hello , I want to establish different levels of depth of the kinect to change my sound. I want to accelerate my sound according to three levels deep and increasing its volume . Thank you very much!!
import ddf.minim.*;// librairie gestion son
Minim minim;
AudioPlayer track;
import processing.video.*;// librairie gestion video
Capture cam;//déclarer ma webcam
import SimpleOpenNI.*;// librairie gestion kinect
SimpleOpenNI simpleOpenNI;
// images de la kinect
PImage maskImage;
PImage rgbImage;
// valeurs de profondeur de la kinect
int[] depthValues;
// distance en millimètre de la profondeur de la kinect pour activer ou non le masque
int minDistance = 500; // 50cm
int maxDistance = 600; // 60cm
// dimensions du sketch
int canvasWidth = 840;
int canvasHeight = 680;
// dimensions/résolution de la kinect
int kinectWidth = 640;
int kinectHeight = 480;
boolean showFrameRate = false;
void setup()
{
size(canvasWidth, canvasHeight, OPENGL);
//size(displayWidth, displayHeight, P3D);//mega grand ecran
// initialisation de la kinect
initKinect();
// masquer la video
maskImage = createImage(kinectWidth, kinectHeight, RGB);
textSize(20);
frameRate(100);
String[] cameras = Capture.list();// affiche les noms de toutes les périphériques connectées .
if (cameras.length == 0) {
println("Il n'y a pas de webcam valides");//message de la console si il n'y a pas de webcam valides
exit();
} else {
println("Les webcams valides sont:");//message de la console si il y a des webcam valides
for (int i = 0; i < cameras.length; i++) {
println(i+" - "+cameras[i]);
}
//cam = new Capture(this, 640,480,15);//webcam intégrée
//kinect.resize(840,680);
cam = new Capture(this, 640,480,"Logitech HD Webcam C270",5);//webcam externe
cam.start(); //Démarre la captation de l'appareil sélectionné
//déclarer le son
minim = new Minim(this);
track = minim.loadFile("20579.mp3", 512);
track.loop();
}
} // setup()
void initKinect()
{
simpleOpenNI = new SimpleOpenNI(this);
// effet mirroir de la kinect
simpleOpenNI.setMirror(true);
// activer le calcul de la profondeur
if (simpleOpenNI.enableDepth() == false)
{ // impossibilité de calculer la profondeur
println("Can't open the depthMap, maybe the Kinect is not connected!");
exit();
return;
}
// activer l'image RGB de la kinect
if (simpleOpenNI.enableRGB() == false)
{ // impossibilité d'activer la profondeur
println("Can't open the Kinect cam, maybe the Kinect is not connected!");
exit();
return;
}
// Aligner les profondeur de données de l'image
simpleOpenNI.alternativeViewPointDepthToImage();
} //initKinect()
void draw()
{
// si la webcam est valide alors elle s'allume
if (cam.available() == true) {
cam.read();// lit la captation vidéo
}
//image(cam,0,0);
// fond noir
background(0);
simpleOpenNI.update();
// récupérer les valeurs de profondeur en mm
depthValues = simpleOpenNI.depthMap();
for (int pic = 0; pic < depthValues.length; pic++) {
if (depthValues[pic] > minDistance && depthValues[pic] < maxDistance)
// pixels blancs
maskImage.pixels[pic] = color(255);
// pixels noirs
else
maskImage.pixels[pic] = color(0);
}
if(maskImage == null){
println("mask null");
}
cam.mask(maskImage);
image(cam,0,0);
if (showFrameRate) text("FPS: "+nfc(frameRate, 1), 10, 25);
}// draw()
boolean sketchFullScreen() { return true; }//mode plein écran
String timestamp()
{
return year()+nf(month(), 2)+nf(day(), 2)+nf(hour(), 2)+nf(minute(), 2)+nf(second(), 2);
} // timestamp()
//tout arrêter
void stop()
{
//arrêter la kinect
simpleOpenNI.dispose();
super.stop();
//arrêter le son
minim.stop();
super.stop();
}