class GenericController { GenericController(){} public void RotateKnob(int type, int num, float val){ LXParameter p = null; if(type==0) { p = glucose.getPattern().getParameters().get(num); if(p!=null) { p.setValue(val); } } if(type==1) { p = glucose.getSelectedTransition().getParameters().get(num); if(p!=null) { p.setValue(val); } } if(type==2) { p = glucose.getSelectedEffect().getParameters().get(num); if(p!=null) { p.setValue(val); } } } } class MidiController extends GenericController { MidiController() { super(); } } //PApplet xparent; // be sure to set OscP5 listener; // Setup OSC //listener = new OscP5(this,7022); //boolean[] noteState = new boolean[16]; // //void controllerChangeReceived(rwmidi.Controller cc) { // if (debugMode) { // println("CC: " + cc.toString()); // } // if(cc.getCC()==1){ // for(int i=0; i<16; i++){ // if(noteState[i] && i<8) { LXParameter p = glucose.getPattern().getParameters().get(i); p.setValue(cc.getValue()/127.0); } // else if(noteState[i] && i<12) { LXParameter p = glucose.getSelectedTransition().getParameters().get(i-8); p.setValue(cc.getValue()/127.0); } // else if(noteState[i] && i<16) { LXParameter p = glucose.getSelectedEffect().getParameters().get(i-12); p.setValue(cc.getValue()/127.0); } // } // } //} // //void noteOnReceived(Note note) { // if (debugMode) { // println("Note On: " + note.toString()); // } // int pitch = note.getPitch(); // if(pitch>=36 && pitch <36+16){ // noteState[pitch-36]=true; // } //} // //void noteOffReceived(Note note) { // if (debugMode) { // println("Note Off: " + note.toString()); // } // int pitch = note.getPitch(); // if(pitch>=36 && pitch <36+16){ // noteState[pitch-36]=false; // } //} // //void oscEvent(OscMessage theOscMessage) { // println(theOscMessage); // LXPattern currentPattern = lx.getPattern(); // if (currentPattern instanceof OSCPattern) { // ((OSCPattern)currentPattern).oscEvent(theOscMessage); // } //} // class ObjectMuckerEffect extends SCEffect { ObjectMuckerEffect(GLucose glucose) { super(glucose); } public void apply(int[] colors){ /*for(Strip s: model.strips){ for(int i=0; i0; i--){ frames[i] = frames[i-1]; } frames[0] = new int[model.points.size()]; for(int i=0; i> 16) & 0xFF); g += ((frames[j][i] >> 8) & 0xFF); b += ((frames[j][i] >> 0) & 0xFF); } r/=blendfactor; g/=blendfactor; b/=blendfactor; colorMode(ARGB); colors[i] = (0xFF << 24) | (r << 16) | (g << 8) | b; colorMode(HSB); } } } } import netP5.*; import oscP5.*; abstract class OSCPattern extends SCPattern { public OSCPattern(GLucose glucose){super(glucose);} public abstract void oscEvent(OscMessage msg); } class Ball { public int lastSeen; public float x,y; public Ball(){ x=y=lastSeen=0; } } class OSC_Balls extends OSCPattern { Ball[] balls; public OSC_Balls(GLucose glucose){ super(glucose); balls = new Ball[20]; for(int i=0; i x-4 && p.y < y+4 && p.y > y-4) { colors[p.index] = #FF0000; } } } } } } import processing.serial.*; /*class ScreenScrape extends SCPattern { PImage pret; ScreenShot ss; public ScreenScrape(GLucose glucose) { super(glucose); System.loadLibrary("ScreenShot"); pret = new PImage(8, 128, ARGB); ss = new ScreenShot(); } void run(double deltaMs){ int x=(1366/2)+516; int y=768-516; int w=8; int h=128; pret.pixels = ss.getScreenShotJNI2(x, y, w, h); //for(int i=0; i