import toxi.video.capture.*; import krister.Ess.*; import it.aos.midi.processing.*; import processing.serial.*; import damkjer.ocd.*; import java.lang.*; import java.util.*; import java.io.*; String CAPTURE_DEVICE = "vfw:Microsoft WDM Image Capture (Win32):1"; int CAPTURE_WIDTH = 160; int CAPTURE_HEIGHT = 120; int step = 3; SimpleCapture capture; Runtime runtime; WUSUM wusum; long miditimestamp1 = 0; long miditimestamp2 = 0; long miditimestamp3 = 0; long miditimestamp4 = 0; long miditimestamp5 = 0; long miditimestamp6 = 0; long miditimestamp7 = 0; netstatter ns; BodhiListener bl; Serial myPort; Camera camera1; int numstars = 100; float tresholdCorona = 40; float treshold1 = 90; float treshold2 = 170; float treshold3 = 90; float treshold4 = 190; float treshold5 = 190; float treshold6 = 170; float treshold7 = 65; float divider1 = 1500; float divider2 = 10; float dividerCorona = 2; float divider3 = 10; float mult1 = 1.3; float[] starsx; float[] starsy; float[] starsz; float[] starsize; float offsz = 20; float v1 = 1; float v2 = 1; float v3 = 1; float v4 = 1; float v5 = 1; float v6 = 1; float v7 = 1; float v1p = 1; float v2p = 1; float v3p = 1; float v4p = 1; float v5p = 1; float v6p = 1; float v7p = 1; int W = 800; int H = 600; //int W = screen.width; //int H = screen.height; float t1 = 0; float t2 = 0; float t3 = 0; float t4 = 0; float t5 = 0; float t6 = 0; float t7 = 0; float t1Inc = 0.02; float t2Inc = 0.02; float t3Inc = 0.02; float t4Inc = 0.02; float t5Inc = 0.02; float t6Inc = 0.02; float t7Inc = 0.02; float tmain = 0; float tmainInc = 0.02; float delta = 120; AudioInput myInput; FFT myFFT; int bufferSize; int steps; float limitDiff; int numAverages=32; float myDamp=.1f; float maxLimit,minLimit; void setup(){ //size(screen.width,screen.height,P3D); size(800,600,P3D); background(0,0,0); capture =new JMFSimpleCapture(); //JMFSimpleCapture.listDevices(); // short version // this will dump all available details for each device and format JMFSimpleCapture.listDevices(System.out,true); if (!capture.initVideo(CAPTURE_DEVICE, CAPTURE_WIDTH, CAPTURE_HEIGHT, 0)) { println(capture.getError()); // you might have to (re-)run the JMFRegistry application // devices sometimes are unrecognized System.exit(0); } runtime = Runtime.getRuntime(); wusum = new WUSUM(this, 7); //println(Serial.list()); //myPort = new Serial(this, Serial.list()[0], 9600); starsx = new float[numstars]; starsy = new float[numstars]; starsz = new float[numstars]; starsize = new float[numstars]; for(int i = 0; itreshold1){ int midiChannel = 0; int pan = 64; long waitAfter = 20; int instrument = 55; int note = int(v1); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp1, waitAfter ); wusum.addEvent(se,0); miditimestamp1++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp1, waitAfter ); wusum.addEvent(se,0); miditimestamp1++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp1, waitAfter ); wusum.addEvent(se,0); miditimestamp1++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp1, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold2){ int midiChannel = 1; int pan = 64; long waitAfter = 20; int instrument = 56; int note = int(v2); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp2, waitAfter ); wusum.addEvent(se,0); miditimestamp2++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp2, waitAfter ); wusum.addEvent(se,0); miditimestamp2++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp2, waitAfter ); wusum.addEvent(se,0); miditimestamp2++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp2, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold3){ int midiChannel = 2; int pan = 64; long waitAfter = 20; int instrument = 69; int note = int(v3/2); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp3, waitAfter ); wusum.addEvent(se,0); miditimestamp3++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp3, waitAfter ); wusum.addEvent(se,0); miditimestamp3++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp3, waitAfter ); wusum.addEvent(se,0); miditimestamp3++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp3, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold4){ int midiChannel = 3; int pan = 64; long waitAfter = 10; int instrument = 113; int note = int(v4/3); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp4, waitAfter ); wusum.addEvent(se,0); miditimestamp4++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp4, waitAfter ); wusum.addEvent(se,0); miditimestamp4++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp4, waitAfter ); wusum.addEvent(se,0); miditimestamp4++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp4, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold5){ int midiChannel = 4; int pan = 64; long waitAfter = 10; int instrument = 115; int note = int(v5/3); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp5, waitAfter ); wusum.addEvent(se,0); miditimestamp5++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp5, waitAfter ); wusum.addEvent(se,0); miditimestamp5++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp5, waitAfter ); wusum.addEvent(se,0); miditimestamp5++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp5, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold6){ int midiChannel = 5; int pan = 64; long waitAfter = 10; int instrument = 92; int note = int(v6/3); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp6, waitAfter ); wusum.addEvent(se,0); miditimestamp6++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp6, waitAfter ); wusum.addEvent(se,0); miditimestamp6++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp6, waitAfter ); wusum.addEvent(se,0); miditimestamp6++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp6, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; itreshold7){ int midiChannel = 6; int pan = 64; long waitAfter = 20; int instrument = 97; int note = int(v7/3); int velocity = 100; WUSUM.SoundEvent se = wusum.getPANEvent(midiChannel, pan, miditimestamp7, waitAfter ); wusum.addEvent(se,0); miditimestamp7++; se = wusum.getINSTRUMENT_CHANGEEvent(midiChannel, instrument, miditimestamp7, waitAfter ); wusum.addEvent(se,0); miditimestamp7++; se = wusum.getNOTE_ONEvent(midiChannel, note, velocity, miditimestamp7, waitAfter ); wusum.addEvent(se,0); miditimestamp7++; se = wusum.getNOTE_OFFEvent(midiChannel, note, velocity, miditimestamp7, waitAfter ); wusum.addEvent(se,0); int quante = int(random(2,4)); int[] quali = new int[quante]; for(int i = 0; i