import oscP5.*; import netP5.*; OscP5 oscP5; NetAddress theMonome; NetAddress toReaktor; String boxName = "/box"; int numRows = 8; int mGrid[][] = new int[8][8]; void setup() { oscP5 = new OscP5(this,8000); theMonome = new NetAddress("127.0.0.1",8080); toReaktor = new NetAddress("127.0.0.1",10000); frameRate(60); size(64,64); clearMonome(); } void draw(){ noLoop(); } void oscEvent(OscMessage incomingOsc) { int x, y, z; if (incomingOsc.checkAddrPattern("/box/press")){ x = incomingOsc.get(0).intValue(); y = incomingOsc.get(1).intValue(); z = incomingOsc.get(2).intValue(); ledToggle(x,y,z);} //else if (incomingOsc.checkAddrPattern("/box/sync")){ // syncMessage(incomingOsc);} else { println("unknown incoming OSC Message address pattern");} } //this function toggles the LED's void ledToggle(int xLED, int yLED, int zLED){ if (zLED==1){ if (mGrid[xLED][yLED] == 0) mGrid[xLED][yLED] = 1; else if (mGrid[xLED][yLED] == 1) mGrid[xLED][yLED] = 0; OscMessage toggleLED = new OscMessage(boxName + "/led"); toggleLED.add(xLED); toggleLED.add(yLED); toggleLED.add(mGrid[xLED][yLED]); //send message oscP5.send(toggleLED, theMonome); } } //This function creates a 'momentary press' effect void ledSwitch(int x, int y, int onOff){ OscMessage switchLED = new OscMessage(boxName + "/led"); switchLED.add(x); switchLED.add(y); switchLED.add(onOff); //send message oscP5.send(switchLED, theMonome); } void clearMonome(){ OscMessage clearTheGrid = new OscMessage(boxName + "/clear"); oscP5.send(clearTheGrid, theMonome); for (int i = 0; i