     else if(is_command(str, "blinka"))   start_effect(BLINK_ON_A);
     else if(is_command(str, "blinkb"))   start_effect(BLINK_ON_B);
     else if(is_command(str, "breathe"))  start_effect(BREATHE_ON);
+    //else if(is_command(str, "replay"))   { strcpy(arg, last); goto replay; }
     else if(is_command(str, "flush"))    flush();
     else if(is_command(str, "blend"))    do_blend();
     else if(is_command(str, "max"))      do_max();
     else if(is_command(str, "dim"))      do_dim();
     else if(is_command(str, "bright"))   do_bright();
     else if(is_command(str, "fade"))     do_fade();
+    else if(is_command(str, "efade"))    do_exhale_fade();
     else if(is_command(str, "flood"))    do_flood();
     else if(is_command(str, "random"))   do_random();
     else if(is_command(str, "mirror"))   do_mirror();
     else if(is_command(str, "eshift"))   do_elastic_shift(String(arg).toInt());
+    else if(is_command(str, "pshift"))   do_power_shift(String(arg).toInt());
+    else if(is_command(str, "demo"))     do_demo();
     else if(is_command(str, "static"))   start_static();
     else if(is_command(str, "red"))      push_color(red);
     else if(is_command(str, "green"))    push_color(green);

rgb_color dkgray = {5, 5, 5};

#define NPALETTE 16
#define NPRETTY_COLORS 13
rgb_color palette[NPALETTE] = { white, red, orange, yellow, ltgreen, green, seafoam, cyan, ltblue, blue, purple, magenta, pink, black, gray, dkgray };
rgb_color adjusted_palette[NPALETTE];

rgb_color scale_color(rgb_color color, float scale){

//  }
//}

void display_buffer(rgb_color * pbuffer = render){
  ledStrip.write(pbuffer, ANIM_LED_COUNT);  
}

void erase(bool display = false){
  for(int i = 0; i < ANIM_LED_COUNT; i++){
    colors[i] = black;
    effects[i] = 0;
  }
  if(display){
    //ledStrip.write(colors, ANIM_LED_COUNT); 
    display_buffer(colors);
  }
}

