Mapping modified kind of right
authorAlexander Green <alexandergreen22@gmail.com>
Sat, 7 Sep 2013 14:30:24 +0000 (07:30 -0700)
committerAlexander Green <alexandergreen22@gmail.com>
Sat, 7 Sep 2013 14:30:24 +0000 (07:30 -0700)
AlexGreen.pde
_Mappings.pde

index f73c26d28e9b9674659e890902974406f9ea4b78..af8130233c3d3159297c336456e0e3d2dd2bd5ed 100755 (executable)
@@ -1,8 +1,6 @@
 class SineSphere extends DPat {
   float modelrad = sqrt((model.xMax)*(model.xMax) + (model.yMax)*(model.yMax) + (model.zMax)*(model.zMax));
-  private final SinLFO rs = new SinLFO(0, 180, 5000);
-  private final SinLFO noisey = new SinLFO(modelrad/8.0, modelrad/4.0, 2300);
-  private final SinLFO band = new SinLFO (0, 10, 2000);
+  
   PVector modelcenter = new PVector(model.xMax, model.yMax, model.zMax);
   BasicParameter widthparameter = new BasicParameter("Width", 10);
   
@@ -22,7 +20,7 @@ class SineSphere extends DPat {
    this.vibration_max = vibration_max;
    this.vperiod = vperiod;
    addModulator( vibration = new SinLFO(vibration_min , vibration_max, vperiod)).trigger(); vibration.modulateDurationBy(vx);
-   addModulator( vx = new SinLFO(-1000, 1000, 10000)).trigger();
+   addModulator( vx = new SinLFO(-4000, 10000, 100000)).trigger();
  }
     float distfromcirclecenter(float px, float py, float pz, float f1x, float f1y, float f1z) {
    return dist(px, py, pz, f1x, f1y, f1z);
@@ -44,24 +42,21 @@ final int NUM_SPHERES = 5;
 final Sphery[] spherys;
   SineSphere(GLucose glucose) {
     super(glucose);
-    addModulator(rs).trigger();
-    //addModulator(band).trigger();
-    addModulator(noisey).trigger();
+   
     spherys = new Sphery[NUM_SPHERES];
     spherys[1] = new Sphery(model.xMax/4, model.yMax/2, model.zMax/2, modelrad/16, modelrad/8, 2500) ;    
     spherys[2] = new Sphery(.75*model.xMax, model.yMax/2, model.zMax/2, modelrad/20, modelrad/10, 2000);
+    spherys[3] = new Sphery(model.xMax/2, model.yMax/2, model.zMax/2, modelrad/4, modelrad/8, 5000);
   }
 
 
        float rsv, noiseyv, bandv;
 
     public void StartRun(int deltaMs) {
-               rsv = rs.getValuef();
-               noiseyv = noisey.getValuef();
-               bandv = band.getValuef();
-     
+               
                spherys[1].run(deltaMs);
                spherys[2].run(deltaMs);
+    spherys[3].run(deltaMs);
        }
 
        
@@ -71,16 +66,10 @@ final Sphery[] spherys;
       
       c = blendColor(c, spherys[2].spheryvalue(Px.x, Px.y, Px.z, .75*model.xMax, model.yMax/2, model.zMax/2), ADD);
       c = blendColor(c, spherys[1].spheryvalue(Px.x, Px.y, Px.z, model.xMax/4, model.yMax/4, model.zMax/2), ADD);
-      float distfromcenter = dist(Px.x, Px.y, Px.z, model.xMax/2, model.yMax/2, model.zMax/2);
-      int distint = floor(distfromcenter);
-      
-      c = blendColor(c, color(
+      c = blendColor(c, spherys[3].spheryvalue(Px.x, Px.y, Px.z, model.xMax/2, model.yMax/2, model.zMax/2),ADD);
       
-      constrain( Px.x  , 0, 360), 
-      constrain( distfromcenter, 20, 80), 
-      max(0, 100 - 10*abs(distfromcenter - noiseyv ) )
-      ),
-      ADD);
+
+  
       
         return c;
     }
index a07c6d4448efb47360f9ab68c24276596b475d18..8c5e4da56d32a0c7f2a7891ec29841a399d2113a 100644 (file)
@@ -44,21 +44,24 @@ public Model buildModel() {
   // y-axis.
   //
   // The cubes automatically increment their y-position by Cube.EDGE_HEIGHT.
+
+  // To-Do:  (Mark Slee, Alex Green, or Ben Morrow):   The Cube # is determined by the order in this list.  "raw object index" is serialized by running through towermapping and then individual cube mapping below.
+  //  We can do better than this.  The raw object index should be obvious from the code-- looking through the rendered simulation and counting through cubes in mapping mode is grossly inefficient. 
   TowerMapping[] towerCubes = new TowerMapping[] {
     
    
   
    //back left cubes: temp Channel 1 
   new TowerMapping(0, Cube.EDGE_HEIGHT, 72, new CubeMapping[] {
-      new CubeMapping(0, 14,  -45 , WRL), 
-      new CubeMapping(18, -12, -20, WFL),
-      new CubeMapping(5, 9, 45, WRR),
+      new CubeMapping(0, 14,  -45 , WRL), // #1
+      new CubeMapping(18, -12, -20, WFL), //#2
+      new CubeMapping(5, 9, 45, WRR),  //#3
      
       
     }),
     //back left cube tower: Channel 2 
     new TowerMapping(0, Cube.EDGE_HEIGHT, 70, new CubeMapping[] {
-     new CubeMapping(18, -2.5, 45, WRL),
+     new CubeMapping(18, -2.5, 45, WRL),  //#4
      new CubeMapping(15, -6, 45, WFR),
       new CubeMapping(-6 , 7, 5,  WRR),
       new CubeMapping(18, 11, -5, WFL)
@@ -113,10 +116,10 @@ public Model buildModel() {
      }),
      
      //end right tower in middle, right of previous tower
-      new TowerMapping (214, Cube.EDGE_HEIGHT, 37, new CubeMapping[] {
-       new CubeMapping(10,0 ,  50, WRR), 
-       new CubeMapping(5 ,5 , 65, WFL)
-     }),
+      //new TowerMapping (214, Cube.EDGE_HEIGHT, 37, new CubeMapping[] {
+       //new CubeMapping(10,0 ,  50, WRR), 
+       //new CubeMapping(5 ,5 , 65, WFL)
+     //}),
 //    // DJ booth, from back left to back right
 
  new TowerMapping(BBX, BBY, BBZ, new CubeMapping[] {
@@ -172,38 +175,82 @@ public Model buildModel() {
     
     // Top left Channel Above DJ booth
     new Cube(33, int(4.5*Cube.EDGE_HEIGHT ),  28, 0, 10, 0, WRR), 
-    new Cube(35, int(5*Cube.EDGE_HEIGHT ),  52, 0, 10, 0, WRR), 
-    new Cube(56, int(5*Cube.EDGE_HEIGHT ),  69, 0, 10, 0, WFL), 
-    new Cube(76, int(5*Cube.EDGE_HEIGHT ),  61, 0, -45, 0, WRL), 
+    //new Cube(35, int(5*Cube.EDGE_HEIGHT ),  52, 0, 10, 0, WRR), 
+    //new Cube(56, int(5*Cube.EDGE_HEIGHT ),  69, 0, 10, 0, WFL), 
+    //new Cube(76, int(5*Cube.EDGE_HEIGHT ),  61, 0, -45, 0, WRL), 
     
     //next channel to the right, same height
-     new Cube(85, int(5*Cube.EDGE_HEIGHT ),  77, 0, 20, 0, WRL), 
-     new Cube(92, int(6*Cube.EDGE_HEIGHT ),  63, 0,20, 0, WRR), 
-     new Cube(86, int(6*Cube.EDGE_HEIGHT ),  47, 0, -45, 0, WRL), 
-     new Cube(123, int(6*Cube.EDGE_HEIGHT ),  31, 0, 20, 0, WFR), 
+     //new Cube(85, int(5*Cube.EDGE_HEIGHT ),  77, 0, 20, 0, WRL), 
+     //new Cube(92, int(6*Cube.EDGE_HEIGHT ),  63, 0,20, 0, WRR), 
+     //new Cube(86, int(6*Cube.EDGE_HEIGHT ),  47, 0, -45, 0, WRL), 
+     //new Cube(123, int(6*Cube.EDGE_HEIGHT ),  31, 0, 20, 0, WFR), 
      
      // next channel to right, same height
-     new Cube(111, int(5*Cube.EDGE_HEIGHT ),  79, 0, 30, 0, WRL), 
-     new Cube(125, int(6*Cube.EDGE_HEIGHT ),  76, 0,27, 0, WRL), 
-     new Cube(144, int(5*Cube.EDGE_HEIGHT ),  44, 0, 45, 0, WRR), 
-     new Cube(134, int(5*Cube.EDGE_HEIGHT ),  42, 0, 45, 0, WRL), 
+     //new Cube(111, int(5*Cube.EDGE_HEIGHT ),  79, 0, 30, 0, WRL), 
+     //new Cube(125, int(6*Cube.EDGE_HEIGHT ),  76, 0,27, 0, WRL), 
+     //new Cube(144, int(5*Cube.EDGE_HEIGHT ),  44, 0, 45, 0, WRR), 
+     //new Cube(134, int(5*Cube.EDGE_HEIGHT ),  42, 0, 45, 0, WRL), 
      
      //next channel to right
       new Cube(185, int(4*Cube.EDGE_HEIGHT ),  73, 0, -45, 0, WRR), 
-     new Cube(170, int(5*Cube.EDGE_HEIGHT ),  58, 0,40, 0, WRL), 
-     new Cube(158, int(6*Cube.EDGE_HEIGHT ),  34, 0, 40, 0, WFR), 
-     new Cube(130, int(6*Cube.EDGE_HEIGHT ),  10, 0, -5, 30, WRL), 
+     //new Cube(170, int(5*Cube.EDGE_HEIGHT ),  58, 0,40, 0, WRL), 
+     //new Cube(158, int(6*Cube.EDGE_HEIGHT ),  34, 0, 40, 0, WFR), 
+     //new Cube(130, int(6*Cube.EDGE_HEIGHT ),  10, 0, -5, 30, WRL), 
      
      //next channel highest to the right
-      new Cube(203, int(5*Cube.EDGE_HEIGHT ),  55, 0, 35, 0, WRR), 
-     new Cube(174, int(5*Cube.EDGE_HEIGHT ),  32, 0,35, 0, WFR), 
-     new Cube(178, int(6.5*Cube.EDGE_HEIGHT ),  16, 0, 20 , 30, WRL), 
-     new Cube(212, int(6.5*Cube.EDGE_HEIGHT ), 23, 0, 20 ,30, WRR), 
+      //new Cube(203, int(5*Cube.EDGE_HEIGHT ),  55, 0, 35, 0, WRR), 
+     //new Cube(174, int(5*Cube.EDGE_HEIGHT ),  32, 0,35, 0, WFR), 
+     //new Cube(178, int(6.5*Cube.EDGE_HEIGHT ),  16, 0, 20 , 30, WRL), 
+     //new Cube(212, int(6.5*Cube.EDGE_HEIGHT ), 23, 0, 20 ,30, WRR), 
      
     //last channel
-     new Cube(204, int(5*Cube.EDGE_HEIGHT ),  28, 0, 25, 0, WFR), 
-     new Cube(185, int(6*Cube.EDGE_HEIGHT ),  38, 0,40, 0, WRR), 
+     //new Cube(204, int(5*Cube.EDGE_HEIGHT ),  28, 0, 25, 0, WFR), 
+     ///new Cube(185, int(6*Cube.EDGE_HEIGHT ),  38, 0,40, 0, WRR), 
     
+   //new cubes above DJ deck
+
+      new Cube(BBX + 78.5, BBY + 2*Cube.EDGE_HEIGHT, BBZ, 0, 10, 0, WRR), 
+      new Cube(BBX + 49.5, BBY + 2*Cube.EDGE_HEIGHT, BBZ - 7, 0, 10, 0, WRR),
+      new Cube(BBX + 13, BBY + 2*Cube.EDGE_HEIGHT, BBZ + 11, 0, -30, 0, WRL), 
+      new Cube(BBX - 15, BBY + 2*Cube.EDGE_HEIGHT, BBZ + 30, 0, -35, 0, WRR), 
+       
+      // new cubes above DJ deck at crazy angles
+      new Cube(BBX - 5, BBY + 3*Cube.EDGE_HEIGHT, BBZ + 15.5, 0, -15, 0, WRL), 
+      new Cube(BBX + 27, BBY + 3*Cube.EDGE_HEIGHT, BBZ + 12.5, 0, -18, -15, WRR),
+      new Cube(BBX + 59, BBY + 3*Cube.EDGE_HEIGHT + 4, BBZ + 12.5, -12, 10, -10, WRL), 
+      new Cube(BBX + 93, BBY + 3*Cube.EDGE_HEIGHT + 7, BBZ + 20.5, -15, 20, -35, WRR), 
+       
+       //new cubes on right side of DJ deck
+      new Cube(161, BBY + 2*Cube.EDGE_HEIGHT, 15, 0, -40, 0, WFR), 
+      new Cube(161, BBY + 3*Cube.EDGE_HEIGHT, 24, 0, -30, 0, WFL),
+      new Cube(165, BBY + 4*Cube.EDGE_HEIGHT, 41, 0, 5, 0, WFR), 
+      
+       //new cubes top back left
+      new Cube(BBX + 32, 5*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH + 7, 0, -25, 0, WFR), 
+      new Cube(BBX + 5.5,  5*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH +7, 0, -25, 0, WFL),
+      new Cube(BBX - 23,  5*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH + 11, 0, -25, 0, WFL), 
+      new Cube(BBX - 33,  5*Cube.EDGE_HEIGHT + 8, BBZ +BassBox.EDGE_DEPTH- 29, 0, 10, 0, WFL), 
+      
+      //on top of previous channel
+       new Cube(BBX + 22, 6*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH , 0, 5, 0, WRL), 
+      new Cube(BBX + 27,  6*Cube.EDGE_HEIGHT - 13, BBZ + BassBox.EDGE_DEPTH- 25, 0, 3, -20, WRR),
+      new Cube(BBX +5,  6*Cube.EDGE_HEIGHT - 13, BBZ + BassBox.EDGE_DEPTH -27, 0, 5, -15, WRL), 
+      new Cube(BBX - 11,  6*Cube.EDGE_HEIGHT -1.5, BBZ +BassBox.EDGE_DEPTH - 11, 0, 30, 0, WRR), 
+      
+      //top center
+       new Cube(BBX +37, 6*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH +13 , 0, 15, 0, WRR), 
+      new Cube(BBX + 64,  6*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH + 25, 0, 15, 0, WFR),
+      new Cube(BBX + 64,  6*Cube.EDGE_HEIGHT - 3, BBZ + BassBox.EDGE_DEPTH -4 , 0, 0, -30, WRL), 
+      new Cube(BBX + 87.5,  6*Cube.EDGE_HEIGHT + 13, BBZ +BassBox.EDGE_DEPTH - 10, 0, 0, 0, WRL), 
+      
+      //top right
+      new Cube(BBX + 76, 107.5, BBZ + BassBox.EDGE_DEPTH + 23, 0, -40, 0, WRR), 
+      new Cube(BBX +  98, 129, BBZ + BassBox.EDGE_DEPTH - 5, 0, 10, 0, WRR),
+      new Cube(BBX + 104,  107.5, BBZ + BassBox.EDGE_DEPTH + 17, 0, -35, 0, WRR), 
+      new Cube(BBX + 129,  107.5, BBZ +BassBox.EDGE_DEPTH +10, 0, -35, 0, WFL), 
+      
+     new Cube(179, 4*Cube.EDGE_HEIGHT, BBZ + BassBox.EDGE_DEPTH + 14,0, -20, 0 , WFR)
+
     // new Cube(x, y, z, rx, ry, rz, wiring),
   };
 
@@ -258,36 +305,36 @@ public PandaMapping[] buildPandaList() {
     new PandaMapping(
     // 8 maps to:  3, 4, 7, 8, 13, 14, 15, 16.  So if it's J4, 
       "10.200.1.30", new ChannelMapping[] {
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 52, 53, 54, 55}),  //30 J3
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 64, 65, 66, 67}),  //30 J4 //ORIG
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,2,3,7 }),  //30 J7
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 39, 40, 38, 37}), //30 J8
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 16, 17, 18, 19 }), //30 J13
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20, 21, 22, 23}), //30 J14
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27 }), // 30 J15
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 28, 29 }), // 30 J16
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20, 21, 22, 23}),  //30 J3 *
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27}),  //30 J4 //ORIG *
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 16, 17, 18, 19}),  //30 J7 *
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 39,40,41,42 }), //30 J8 *
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 37, 38, 36, 35}), //30 J13
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 48,49,50,51}), //30 J14
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 52,53,54,55 }), // 30 J15
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 56, 57, 58, 75}), // 30 J16
     }),
     new PandaMapping(
       "10.200.1.29", new ChannelMapping[] {
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 68, 65, 66, 67 }), //29 J3  
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 30,31 }), //29 J4
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20, 21, 22, 23 }), // 29 J7
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 60, 61 , 62, 63 }), //29 J8 //XXX
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 59,60,61,62}), //29 J3  
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 63, 64, 65, 66}), //29 J4
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 67, 68, 69, 70 }), // 29 J7
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 71,72,73,74 }), //29 J8 //XXX
         new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 17, 18, 19, 20 }), //29 J13 //XX //bassbox
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27}), //29 J14
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 41,42,43,44 }),  //29 J15
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,1,1,1}), //29 J14
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 37, 38, 39, 35}),  //29 J15
         new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 16, 17,18,19 }),  //29 J16
     }),    
     new PandaMapping(
       "10.200.1.28", new ChannelMapping[] {
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 56, 57, 58, 59 }), //28 J3
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 64, 69 }), //28 J4
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 48, 49, 50, 51 }), //28 J7
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,1,1,1}), //28 J3
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,1,1,1}), //28 J4
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1, 1, 1, 1 }), //28 J7
         new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 13, 14 , 15, 16 }), //28 J8
         new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8,9,10,11 }), //28 J13
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 35,36,34,33}), //28 J14
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 33,34,32,31}), //28 J14
         new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 12, 13, 14, 15 }), //28 J15
-        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 30, 31, 32, 48 }), //28 J16
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 28, 29, 30, 1}), //28 J16
     }),    
   };  
 
@@ -357,7 +404,7 @@ class PandaMapping {
 }
 
 /**
- * Each channel on a pandaboard can be mapped in a number of modes. The typial is
+ * Each channel on a pandaboard can be mapped in a number of modes. The typical is
  * to a series of connected cubes, but we also have special mappings for the bass box,
  * the speaker enclosures, and the DJ booth floor.
  *