sinesphere working with notes
[SugarCubes.git] / DanUtil.pde
index f0cc7067f53c4f14e70d668d418c0bd2dd7edfbf..c7c8e706d82c49dc1aac97c34d5a6ae0dea245d4 100644 (file)
@@ -90,12 +90,11 @@ public class DPat extends SCPattern
        void    rotateX (PVector p, PVector o, float nSin, float nCos) { p.set(p.x,nCos*(p.y-o.y) - nSin*(p.z-o.z) + o.y    , nSin*(p.y-o.y) + nCos*(p.z-o.z) + o.z    ); }
        void    rotateY (PVector p, PVector o, float nSin, float nCos) { p.set(    nSin*(p.z-o.z) + nCos*(p.x-o.x) + o.x,p.y, nCos*(p.z-o.z) - nSin*(p.x-o.x) + o.z    ); }
 
-       BasicParameter  addParam(String label, double value) { BasicParameter p = new BasicParameter(label, value); addParameter(p); return p; }
+       BasicParameter  addParam(String label, double value)    { BasicParameter p = new BasicParameter(label, value); addParameter(p); return p; }
 
        PVector         vT1 = new PVector(), vT2 = new PVector();
-       float           calcCone (PVector v1, PVector v2, PVector c)    {       // use vec.angleBetween() for this
-                                                                       vT1.set(v1); vT2.set(v2); vT1.sub(c); vT2.sub(c);
-                                                                       return degrees(PVector.angleBetween(vT1,vT2)); }
+       float           calcCone (PVector v1, PVector v2, PVector c)    {       vT1.set(v1); vT2.set(v2); vT1.sub(c); vT2.sub(c);
+                                                                                                                                       return degrees(PVector.angleBetween(vT1,vT2)); }
 
        Pick            addPick(String name, int def, int _max, String[] desc) {
                Pick P          = new Pick(name, def, _max+1, nMaxRow, desc); 
@@ -156,6 +155,16 @@ public class DPat extends SCPattern
                //println (model.xMax + " " + model.yMax + " " +  model.zMax);
          //for (MidiOutputDevice o: RWMidi.getOutputDevices()) { if (o.toString().contains("APC")) { APCOut = o.createOutput(); break;}}
        }
+
+       float spin() {
+         float raw = val(pSpin);
+         if (raw <= 0.45) {
+           return raw + 0.05;
+         } else if (raw >= 0.55) {
+           return raw - 0.05;
+    }
+    return 0.5;
+       }
        
        void setAPCOutput(MidiOutput output) {
          APCOut = output;