Stap 6: programmeren
invoer SimpleOpenNI.*;
importeren van ddf.minim.*;
importeren van ddf.minim.ugens.*;
SimpleOpenNI de kinect;
int closestValue;
int closestX;
int closestY;
Minim minim;
AudioOutput
VOID Setup {}
grootte (640, 480);
kinect = nieuwe SimpleOpenNI (dit);
kinect.enableDepth();
Minim = nieuwe Minim (dit);
uit = minim.getLineOut();
}
VOID draw() {}
closestValue = 8000;
kinect.update();
int [] depthValues = kinect.depthMap();
voor (int y = 0; y < 480; y ++) {}
voor (int x = 0 x < 640; x ++) {}
int i = x + y * 640;
int currentDepthValue = depthValues [i];
Als (currentDepthValue > 0 & & currentDepthValue < closestValue) {}
closestValue = currentDepthValue;
closestX = x;
closestY = y;
}
}
}
Image(kinect.depthImage(), 0, 0);
vulling (255, 0, 0, 155);
rect (20, 0, 40, 480);
vulling (255, 128, 0, 155);
rect (100, 0, 40, 480);
vulling (255, 255, 0, 155);
rect (180, 0, 40, 480);
vulling (0, 255, 0, 155);
rect (260, 0, 40, 480);
vulling (0, 255, 255, 155);
rect (340, 0, 40, 480);
vulling (0, 0, 255, 155);
rect (420, 0, 40, 480);
vulling (128, 0, 255, 155);
rect (500, 0, 40, 480);
vulling (255, 0, 255, 155);
rect (580, 0, 40, 480);
Fill(155);
ellips (closestX, closestY, 20, 20);
Als (closestX < 60 & & closestX > 20) {}
out.playNote ("C4");
}
Als (closestX < 140 & & closestX > 100) {}
out.playNote ("D4");
}
Als (closestX < 220 & & closestX > 180) {}
out.playNote ("E4");
}
Als (closestX < 300 & & closestX > 260) {}
out.playNote ("F4");
}
Als (closestX < 380 & & closestX > 340) {}
out.playNote ("G4");
}
Als (closestX < 460 & & closestX > 420) {}
out.playNote ("A4");
}
Als (closestX < 540 & & closestX > 500) {}
out.playNote ("B4");
}
Als (closestX < 620 & & closestX > 580) {}
out.playNote ("C5");
}
}
VOID stop() {}
Minim.stop();
Super.stop();
}
In dit programma, kunt u de notitie en de octaaf door simpelweg te typen van een nieuwe transactie. Bijvoorbeeld, als je verhogen de laatste noot van een octaaf wilde, zou u vervangen ("C5") ("C6").