Add switch to go monochromatic
authorMark Slee <mcslee@Mark-Slees-MacBook-Pro.local>
Fri, 18 Oct 2013 23:19:45 +0000 (16:19 -0700)
committerMark Slee <mcslee@Mark-Slees-MacBook-Pro.local>
Fri, 18 Oct 2013 23:19:45 +0000 (16:19 -0700)
MarkSlee.pde
_MIDI.pde

index 81b26299a013374b4b8d6a42f22fd119d0bab6d1..7a556d5d0f7850d5a463f7ba7f890365e664b828 100644 (file)
@@ -1199,6 +1199,7 @@ class ColorFuckerEffect extends SCEffect {
   final BasicParameter desat = new BasicParameter("DSAT", 0);
   final BasicParameter sharp = new BasicParameter("SHARP", 0);
   final BasicParameter soft = new BasicParameter("SOFT", 0);
+  final BasicParameter mono = new BasicParameter("MONO", 0);
   final BasicParameter invert = new BasicParameter("INVERT", 0);
   final BasicParameter hueShift = new BasicParameter("HSHFT", 0);
   
@@ -1210,6 +1211,7 @@ class ColorFuckerEffect extends SCEffect {
     addParameter(desat);
     addParameter(sharp);
     addParameter(soft);
+    addParameter(mono);
     addParameter(invert);
     addParameter(hueShift);
   }
@@ -1223,10 +1225,14 @@ class ColorFuckerEffect extends SCEffect {
     float hMod = hueShift.getValuef();
     float fSharp = 1/(1.0001-sharp.getValuef());
     float fSoft = soft.getValuef();
+    boolean mon = mono.getValuef() > 0.5;
     boolean ivt = invert.getValuef() > 0.5;
-    if (bMod < 1 || sMod < 1 || hMod > 0 || fSharp > 0 || ivt || fSoft > 0) {
+    if (bMod < 1 || sMod < 1 || hMod > 0 || fSharp > 0 || ivt || mon || fSoft > 0) {
       for (int i = 0; i < colors.length; ++i) {
         lx.RGBtoHSB(colors[i], hsb);
+        if (mon) {
+          hsb[0] = lx.getBaseHuef() / 360.;
+        }
         if (ivt) {
           hsb[2] = 1 - hsb[2];
         }
index 06c3244c0491b08189a6d6f721528826f57a35c6..ae14990f0813825f3af2d937639a8c421eda690c 100644 (file)
--- a/_MIDI.pde
+++ b/_MIDI.pde
@@ -441,6 +441,9 @@ public class APC40MidiInput extends GenericDeviceMidiInput {
     
     case 49: // SOLO/CUE
       switch (nChan) {
+        case 4:
+          EFF_colorFucker.mono.setValue(1);
+          break;
         case 5:
           EFF_colorFucker.invert.setValue(1);
           break;
@@ -526,6 +529,9 @@ public class APC40MidiInput extends GenericDeviceMidiInput {
       
     case 49: // SOLO/CUE
       switch (nChan) {
+        case 4:
+          EFF_colorFucker.mono.setValue(0);
+          break;
         case 5:
           EFF_colorFucker.invert.setValue(0);
           break;