import org.openkinect.processing.*; import processing.sound.*; SinOsc sinex; SinOsc siney; SinOsc sinez; float freqx; float freqy; float freqz; float amp = 1; Kinect kinect; void setup() { size(640,480); kinect = new Kinect(this); kinect.initDepth(); kinect.initVideo(); kinect.enableIR(false); textSize(32); sinex = new SinOsc(this); siney = new SinOsc(this); sinez = new SinOsc(this); } void draw() { background(0); int[] depth = kinect.getRawDepth(); int step = 1; int point_count = 0; float depth_avg = 0; float x_avg = 0; float y_avg = 0; noStroke(); loadPixels(); for (int x = 0; x < 640; x+=step) for (int y = 0; y < 480; y+=step) { int c = (depth[x + y * 640] / 4); if (depth[x + y * 640] > 0 && depth[x + y * 640] < 900) { point_count++; depth_avg += depth[x + y * 640]; x_avg += x; y_avg += y; } else c = 0; pixels[x + y * 640] = color(c,0,0); } if (point_count > 3000) { depth_avg /= point_count; x_avg /= point_count; y_avg /= point_count; amp = 1; freqx = (1 - (x_avg / 640)) * (62 - 28.5) + 28.5; freqy = (1 - (y_avg / 240)) * (62 - 28.5) + 28.5; freqz = map(constrain(depth_avg / 900, 0, 1), 0, 1, 30, 60); } else amp = 0; sinex.play(freqx, amp, 0, -1); siney.play(freqy, amp, 0, -1); sinez.play(freqz, amp, 0, -1); updatePixels(); }