Difference between revisions of "Team:NYU Shanghai/Code"
Line 74: | Line 74: | ||
<div id="BMG code"> | <div id="BMG code"> | ||
<h5 id="BMG" class="collapsed" onclick="collapse();expandBMG()"><span class="noselect">Bacterial Music Generator</span></h5> | <h5 id="BMG" class="collapsed" onclick="collapse();expandBMG()"><span class="noselect">Bacterial Music Generator</span></h5> | ||
− | <p id="BMGText">//main | + | <p id="BMGText"> |
− | import processing.video.*; | + | //main |
− | import arb.soundcipher.*; | + | <br>import processing.video.*; |
− | import blobDetection.*; | + | <br>import arb.soundcipher.*; |
+ | <br>import blobDetection.*; | ||
− | Capture video_sequencer, video_rack; | + | <br><br>Capture video_sequencer, video_rack; |
− | SoundCipher sc = new SoundCipher(this); | + | <br>SoundCipher sc = new SoundCipher(this); |
− | int grid_size=20; | + | <br><br>int grid_size=20; |
− | int grid_num=16; | + | <br>int grid_num=16; |
− | int window_size; | + | <br>int window_size; |
− | int window_height; | + | <br>int window_height; |
− | int block_number=3; | + | <br>int block_number=3; |
− | int interval=4; | + | <br><br>int interval=4; |
− | int margin; | + | <br>int margin; |
− | int n=0;//iterator for play() | + | <br>int n=0;//iterator for play() |
− | boolean[] camera= new boolean[block_number]; | + | <br><br>boolean[] camera= new boolean[block_number]; |
− | boolean[] music=new boolean[block_number]; | + | <br>boolean[] music=new boolean[block_number]; |
− | boolean tube=false; | + | <br>boolean tube=false; |
− | int[] volume=new int[block_number]; | + | <br>int[] volume=new int[block_number]; |
− | Sequencer[] sequencer= new Sequencer[block_number]; | + | <br><br>Sequencer[] sequencer= new Sequencer[block_number]; |
− | Sequencer_video sequencer_video; | + | <br>Sequencer_video sequencer_video; |
− | Rack rack; | + | <br>Rack rack; |
− | void setup() { | + | <br><br>void setup() { |
− | volume[0]=0; | + | <br>volume[0]=0; |
− | volume[1]=0; | + | <br>volume[1]=0; |
− | volume[2]=0; | + | <br>volume[2]=0; |
− | window_size=displayWidth; | + | <br>window_size=displayWidth; |
− | window_height=displayHeight; | + | <br>window_height=displayHeight; |
− | margin=(window_size-(grid_num*(grid_size+interval)+interval) | + | <br><br>margin=(window_size-(grid_num*(grid_size+interval)+interval) |
− | + | <br>*block_number)/(block_number+1); | |
− | size(window_size, window_height); | + | <br>size(window_size, window_height); |
− | //empty tracks | + | <br><br>//empty tracks |
− | for (int i=0; i<block_number; i++) { | + | <br>for (int i=0; i<block_number; i++) { |
− | camera[i]=false; | + | <br>camera[i]=false; |
− | music[i]=false; | + | <br>music[i]=false; |
} | } | ||
− | make_empty(); | + | <br><br>make_empty(); |
− | String[] cameras = Capture.list(); | + | <br><br>String[] cameras = Capture.list(); |
− | video_sequencer = new Capture(this, cameras[0]); | + | <br><br>video_sequencer = new Capture(this, cameras[0]); |
− | video_sequencer.start(); | + | <br>video_sequencer.start(); |
− | sequencer_video=new Sequencer_video(video_sequencer, sc, grid_num, grid_size, interval); | + | <br>sequencer_video=new Sequencer_video(video_sequencer, sc, grid_num, grid_size, interval); |
− | video_rack = new Capture(this, cameras[15]); | + | <br><br>video_rack = new Capture(this, cameras[15]); |
− | video_rack.start(); | + | <br>video_rack.start(); |
− | rack=new Rack(video_rack, sc, window_size, window_height, | + | <br>rack=new Rack(video_rack, sc, window_size, window_height, |
− | window_height-margin-grid_num*(grid_size+interval)); | + | <br>window_height-margin-grid_num*(grid_size+interval)); |
− | frameRate(4); | + | <br><br>frameRate(4); |
− | } | + | <br>} |
− | void draw() { | + | <br><br>void draw() { |
− | + | <br>background(0); | |
− | if (tube) { | + | <br>if (tube) { |
− | rack.get_color(); | + | <br>rack.get_color(); |
− | rack.draw_rack(); | + | <br>rack.draw_rack(); |
− | rack.glow(n); | + | <br>rack.glow(n); |
− | rack.play_sounds(n); | + | <br>rack.play_sounds(n); |
} | } | ||
− | for (int i=0; i<block_number; i++) { | + | <br><br>for (int i=0; i<block_number; i++) { |
− | sequencer[i].draw_grid(); | + | <br>sequencer[i].draw_grid(); |
− | if (camera[i]&&!music[i]) { | + | <br>if (camera[i]&&!music[i]) { |
− | sequencer_video.position(pos_x(i), margin); | + | <br>sequencer_video.position(pos_x(i), margin); |
− | sequencer_video.grid_off(); | + | <br>sequencer_video.grid_off(); |
− | sequencer_video.bd(); | + | <br>sequencer_video.bd(); |
− | sequencer_video.bd_draw(n); | + | <br>sequencer_video.bd_draw(n); |
− | } else if (camera[i]&&music[i]) { | + | <br>} else if (camera[i]&&music[i]) { |
− | sequencer_video.position(pos_x(i), margin); | + | <br>sequencer_video.position(pos_x(i), margin); |
− | sequencer_video.grid_on(); | + | <br>sequencer_video.grid_on(); |
− | sequencer_video.bd(); | + | <br>sequencer_video.bd(); |
− | sequencer_video.bd_draw(n); | + | <br>sequencer_video.bd_draw(n); |
− | } else if (!camera[i]&&music[i]) { | + | <br>} else if (!camera[i]&&music[i]) { |
− | sequencer[i].set_volume(volume[i]); | + | <br>sequencer[i].set_volume(volume[i]); |
− | sequencer[i].play_sounds(n); | + | <br>sequencer[i].play_sounds(n); |
− | sequencer[i].glow(n); | + | <br>sequencer[i].glow(n); |
− | } | + | <br>} |
− | } | + | <br>} |
n++; | n++; | ||
Line 1,014: | Line 1,015: | ||
} | } | ||
} | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <br><br>Source: blob detection | ||
+ | http://www.v3ga.net/processing/BlobDetection/ | ||
+ | |||
+ | <br><br>soundcipher | ||
+ | http://explodingart.com/soundcipher/ | ||
+ | |||
+ | |||
Revision as of 06:09, 10 September 2015