This is the working branch from my desktop, that drives the cubes well with no bugs...
[SugarCubes.git] / _Internals.pde
index a358f1b3202a94fd15c104314d51500a0ddcce80..e2291fba576a9a3aeaf0070709fc9a9d9526bc76 100644 (file)
@@ -124,24 +124,56 @@ void setup() {
   println("Hit the 'p' key to toggle Panda Board output");
 }
 
+boolean[] noteState = new boolean[16];
+
 void controllerChangeReceived(rwmidi.Controller cc) {
   if (debugMode) {
     println("CC: " + cc.toString());
   }
+  //println(cc.getInput().getName());
+  int c = cc.getCC();
+  if(c==1){
+    for(int i=0; i<16; i++){
+      if(noteState[i] && i<8)  { LXParameter p = glucose.patternKnobs.get(i); p.setValue(cc.getValue()/127.0); }
+      else if(noteState[i] && i<16) { try { LXParameter p = gparams.get(i-8); p.setValue(cc.getValue()/127.0); } catch(Exception e) {} }
+    }
+  }
+  if(c==2){
+    for(int i=0; i<16; i++){
+      //sif(noteState[i] && i<8)  { println( gplay.Sliders ); }
+      //else if(noteState[i] && i<16) { try { LXParameter p = gparams.get(i-8); p.setValue(cc.getValue()/127.0); } catch(Exception e) {} }
+    }
+  }
+  
+    
+  //if(c>=16 || c<16+8){
+  //    LXParameter p = gparams.get(c-16);
+  //    p.setValue(c/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 logTime(String evt) {
   int now = millis();
   println(evt + ": " + (now - lastMillis) + "ms");
@@ -217,11 +249,12 @@ void draw() {
   
   // TODO(mcslee): move into GLucose engine
   for (PandaDriver p : pandaBoards) {
-    p.send(colors);
+    p.sendNow(colors);
   }
 }
 
 void drawBassBox(BassBox b) {
+  /*
   float in = .15;
 
   noStroke();
@@ -263,7 +296,7 @@ void drawBassBox(BassBox b) {
   box(0, BassBox.EDGE_HEIGHT - in*2, Cube.CHANNEL_WIDTH-in);
   translate(BassBox.EDGE_WIDTH-2*in, 0, 0);
   box(0, BassBox.EDGE_HEIGHT - in*2, Cube.CHANNEL_WIDTH-in);
-  popMatrix();
+  popMatrix();*/
   
 }
 
@@ -335,16 +368,21 @@ void drawUI() {
     ui.drawHelpTip();
   }
   ui.drawFPS();
+  ui.drawDanText();
 }
 
 boolean uiOn = true;
 int restoreToIndex = -1;
 
+boolean doDual = false;
 void keyPressed() {
   if (mappingMode) {
     mappingTool.keyPressed();
   }
   switch (key) {
+    case 'w':
+       doDual = !doDual;
+       break;
     case '-':
     case '_':
       frameRate(--targetFramerate);
@@ -426,4 +464,3 @@ void mouseWheel(int delta) {
     eyeZ = midZ + eyeR*cos(eyeA);
   }
 }
-