   } else if (pattern == 1) {
     pattern_hsv_offset_circle_loop();
   } else if (pattern == 2) {
-    pattern_disorient_1();
+    pattern_hsv_circle_loop();
   } else if (pattern == 3) {
-    pattern_hsv_circle_loop();
+    pattern_disorient_2();
   } else if (pattern == 4) {
-    pattern_disorient_2();
+    pattern_phase_rainbow_pulse();
   }
 
   gLED->setBrightness(gBrightness);

#define PIXEL_PIN 6
#define PIXEL_TYPE NSFastLED::NEOPIXEL
#define HUE_STEP 10 // 1..255, each loop increments hue by this value
#define LOOP_DELAY 100 //ms
#define HSV_BRIGHTNESS 255
#define HSV_SATURATION 255
/* set this to match the number of patterns you flip

  base_hue += HUE_STEP;
}

// rainbow pulsing with varied breathing cycles
void pattern_phase_rainbow_pulse() {
  uint8_t bpm = NSFastLED::beatsin8(6, 6, 160); // on a period of 10s, cycle bpm between 6-200
  uint8_t cBrightness = NSFastLED::beatsin8(bpm, 0, 255);
  NSFastLED::CHSV hsv = NSFastLED::CHSV(base_hue, HSV_SATURATION, cBrightness);
  NSFastLED::CRGB rgb;
  NSFastLED::hsv2rgb_rainbow(hsv, rgb);
  for (int i = 0 ; i < PIXEL_COUNT ; ++i){
    leds[i] = rgb;
  }
  // set the center pixel to mirror what pixel 0 is
  RGB.color(rgb.r, rgb.g, rgb.b);
  base_hue += 2;
}

// pattern 3
void pattern_hsv_circle_loop(){
  NSFastLED::CHSV hsv = NSFastLED::CHSV(base_hue, HSV_SATURATION, HSV_BRIGHTNESS);
