       currentZ = proposedZ;   
       
       changePix(cube[currentX][currentY][currentZ], 1, 250);
-      changePix(cube[previousX1][previousY1][previousZ1], 2, 250);
-      changePix(cube[previousX2][previousY2][previousZ2], 3, 250);
-      changePix(cube[previousX3][previousY3][previousZ3], 4, 250);
+      changePix(cube[previousX1][previousY1][previousZ1], 2, 200);
+      changePix(cube[previousX2][previousY2][previousZ2], 3, 125);
+      changePix(cube[previousX3][previousY3][previousZ3], 4, 30);
       
       refresh();
-      delay(100);
+      delay(1);
       
     } else {
       proposedX = currentX;

int randomColor;
int cube[4][4][4];


void setup() {
  // put your setup code here, to run once:

  strip.begin();
  strip.show();
  setArray();
  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);
  
}

void loop() {
  // put your main code here, to run repeatedly:
  
  button1State = digitalRead(button1Pin);
  button2State = digitalRead(button2Pin);
  if(button1State == HIGH) button1 = 1;
  if(button2State == HIGH) button2 = 1;
  
  if(button1 == 1) {
    effectNumber++;
    if(effectNumber == 8) effectNumber = 0;
    button1 = 0;
  }
  
  if(button2 == 1) {
    effectNumber--;
    if(effectNumber == -1) effectNumber = 7;
    button2 = 0;
  }
  
  if(effectNumber == 0) {
    allOff();
  }
  else if(effectNumber == 1) {
    strobe();
  }
  else if(effectNumber == 2) {
    pulseLeds();
  }
  else if(effectNumber == 3) {  
    inOrderCycle();
  }
  else if(effectNumber == 4) {  
    cubeCycle();
  }
  else if(effectNumber == 5) {
    cubeVertPlaneShift();
  }
  else if(effectNumber == 6) {
    cubeHorizPlaneShift();
  }
  else if(effectNumber == 7) {
    snake(500);
  }
}


