Team:NYU Shanghai/Code

Code

//main import processing.video.*; import arb.soundcipher.*; import blobDetection.*; Capture video_sequencer, video_rack; SoundCipher sc = new SoundCipher(this); int grid_size=20; int grid_num=16; int window_size; int window_height; int block_number=3; int interval=4; int margin; int n=0;//iterator for play() boolean[] camera= new boolean[block_number]; boolean[] music=new boolean[block_number]; boolean tube=false; int[] volume=new int[block_number]; Sequencer[] sequencer= new Sequencer[block_number]; Sequencer_video sequencer_video; Rack rack; void setup() { volume[0]=0; volume[1]=0; volume[2]=0; window_size=displayWidth; window_height=displayHeight; margin=(window_size-(grid_num*(grid_size+interval)+interval) *block_number)/(block_number+1); size(window_size, window_height); //empty tracks for (int i=0; i=grid_num) { n=0; } } void keyPressed() { //track 1 if (key=='q'||key=='Q') { if (camera[0]==false &&camera[1]==false &&camera[2]==false) { camera[0]=true; } } else if (key=='w'||key=='W') { camera[0]=false; if (music[0]) { sequencer[0].get_sequence(sequencer_video.sequence()); sequencer[0].get_color(sequencer_video.grid_color()); } } else if (key=='e'||key=='E') { music[0]=true; } else if (key=='r'||key=='R') { music[0]=false; sequencer[0].delete(); } else if (key=='t'||key=='T') { if (music[0]) { if (camera[0]) { sequencer_video.set_volume(volume[0]); } else { sequencer[0].set_volume(volume[0]); } } } else if (key=='y'||key=='Y') { if (music[0]) { volume[0]=constrain(volume[0]+5, 0, 127); if (camera[0]) { sequencer_video.set_volume(volume[0]); } else { sequencer[0].set_volume(volume[0]); } } } //track 2 else if (key=='a'||key=='A') { if (camera[0]==false &&camera[1]==false &&camera[2]==false) { camera[1]=true; } } else if (key=='s'||key=='S') { camera[1]=false; if (music[1]) { sequencer[1].get_sequence(sequencer_video.sequence()); sequencer[1].get_color(sequencer_video.grid_color()); } } else if (key=='d'||key=='D') { music[1]=true; } else if (key=='f'||key=='F') { music[1]=false; sequencer[1].delete(); } else if (key=='g'||key=='G') { if (music[1]) { volume[1]=constrain(volume[1]-5, 0, 127); if (camera[1]) { sequencer_video.set_volume(volume[1]); } else { sequencer[1].set_volume(volume[1]); } } } else if (key=='h'||key=='H') { if (music[1]) { volume[1]=constrain(volume[1]+5, 0, 127); if (camera[1]) { sequencer_video.set_volume(volume[1]); } else { sequencer[1].set_volume(volume[1]); } } } //track 3 else if (key=='z'||key=='Z') { if (camera[0]==false &&camera[1]==false &&camera[2]==false) { camera[2]=true; } } else if (key=='x'||key=='X') { camera[2]=false; if (music[2]) { sequencer[2].get_sequence(sequencer_video.sequence()); sequencer[2].get_color(sequencer_video.grid_color()); } } else if (key=='c'||key=='C') { music[2]=true; } else if (key=='v'||key=='V') { music[2]=false; sequencer[2].delete(); } else if (key=='b'||key=='B') { if (music[2]) { volume[2]=constrain(volume[2]-5, 0, 127); if (camera[2]) { sequencer_video.set_volume(volume[2]); } else { sequencer[2].set_volume(volume[2]); } } } else if (key=='n'||key=='N') { if (music[2]) { volume[2]=constrain(volume[2]+5, 0, 127); if (camera[2]) { sequencer_video.set_volume(volume[2]); } else { sequencer[2].set_volume(volume[2]); } } } else if (key=='o'||key=='O') { tube=true; } else if (key=='p'||key=='P') { tube=false; } else if (key==CODED) { if (keyCode==LEFT) { sequencer_video.threshold_down(); } else if (keyCode==RIGHT) { sequencer_video.threshold_up(); } else if (keyCode==UP) { rack.volume_up(); } else if (keyCode==DOWN) { rack.volume_down(); } } } void make_empty() { for (int i=0; i=0&&n+p=0&& m+q5&&b.w*block_size<25&& b.h*block_size>5&&b.h*block_size<25) { strokeWeight(3); stroke(255, 0, 0); rect( b.xMin*block_size, b.yMin*block_size, b.w*block_size, b.h*block_size ); } } } popMatrix(); } void fastblur(PImage img, int radius) { if (radius<1) { return; } int w=img.width; int h=img.height; int wm=w-1; int hm=h-1; int wh=w*h; int div=radius+radius+1; int r[]=new int[wh]; int g[]=new int[wh]; int b[]=new int[wh]; int rsum, gsum, bsum, x, y, i, p, p1, p2, yp, yi, yw; int vmin[] = new int[max(w, h)]; int vmax[] = new int[max(w, h)]; int[] pix=img.pixels; int dv[]=new int[256*div]; for (i=0; i<256*div; i++) { dv[i]=(i/div); } yw=yi=0; for (y=0; y>16; gsum+=(p & 0x00ff00)>>8; bsum+= p & 0x0000ff; } for (x=0; x>16; gsum+=((p1 & 0x00ff00)-(p2 & 0x00ff00))>>8; bsum+= (p1 & 0x0000ff)-(p2 & 0x0000ff); yi++; } yw+=w; } for (x=0; x5&&b.w*block_size<25&& b.h*block_size>5&&b.h*block_size<25){ blobs[n][0]=b.xMin*block_size; blobs[n][1]=b.yMin*block_size; blobs[n][2]=b.w*block_size; blobs[n][3]=b.h*block_size; } } } void convert() { int row, col, i; for (int n=0; n0&&i=0&&n+p=0&& m+q