 
   /** reset ? */
   if (abs(pixels[targetPixel].h - targetHSV.h) < 0.01f){
+    targetHSV   = HSV(nextHValue, 1, 1, 1);
     targetPixel = random(numPixels);
-    targetHSV   = nextHSV;
   }
 
   strip0->show();

  bool dirty = false;

  if (nextNesRead < millis()){ 
    if ((data & 0x01) == 0){
      nextHValue = fmod(nextHValue - 30.f + 360, 360.0f);
      nextNesRead = 300 + millis();
      dirty = true;
    }else if((data & 0x02) == 0){
      nextHValue = fmod(nextHValue + 30.f, 360.0f);
      nextNesRead = 300 + millis();
      dirty = true;
    }else if((data & 0x04) == 0){
      hsvMode = (hsvMode + 1) % 16; 
      nextNesRead = 300 + millis();
      Serial.println(hsvMode);
      dirty = true;
    }else if((data & 0x08) == 0){
      nextHValue = 360.0f * HSVClockRandom().h;
      nextNesRead = 300 + millis();
      dirty = true;
    }else if((data & 0x40) == 0){
      nextHValue = fmod(nextHValue - 0.01f + 360, 360.0f);
      dirty = true;
    }else if((data & 0x80) == 0){
      nextHValue = fmod(nextHValue + 0.01f, 360.0f);
      dirty = true;
    }
  }

      if (byteBuffer[0] == 2){
        /** This is arduino <> arduino data */
        hsvMode = ((byteBuffer[1] % HSV_COUNT) + HSV_COUNT) % HSV_COUNT;
        nextHValue = data / 360.0f;
      }  
    }
  }
