Quantcast
Channel: Kinect - Processing 2.x and 3.x Forum
Viewing all articles
Browse latest Browse all 530

The sound changes according to the level of depth of the kinect

$
0
0

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();
}

Viewing all articles
Browse latest Browse all 530

Trending Articles