     case IR21_FADE:      if (!applyPreset(3)) { effectCurrent = FX_MODE_BREATH;        effectPalette = 0; } break;
     case IR21_SMOOTH:    if (!applyPreset(4)) { effectCurrent = FX_MODE_RAINBOW;       effectPalette = 0; } break;
     default: return;
-  }
-  lastValidCode = code;
+    }
+    lastValidCode = code;
 }
 
 void decodeIR6(uint32_t code)
 {
   switch (code) {
-    case IR6_POWER: toggleOnOff(); break;
-    case IR6_CHANNEL_UP: relativeChange(&bri, 10);         break;
-    case IR6_CHANNEL_DOWN: relativeChange(&bri, -10, 5);     break;
-    case IR6_VOLUME_UP: /* next effect */ relativeChange(&effectCurrent, 1); break;
-    case IR6_VOLUME_DOWN: 
-    /* next palette */ 
-      relativeChange(&effectPalette, 1); 
+    case IR6_POWER: toggleOnOff();                                         break;
+    case IR6_CHANNEL_UP: relativeChange(&bri, 10);                         break;
+    case IR6_CHANNEL_DOWN: relativeChange(&bri, -10, 5);                   break;
+    case IR6_VOLUME_UP:   relativeChange(&effectCurrent, 1, 0, MODE_COUNT); break;  // next effect
+    case IR6_VOLUME_DOWN:                                                           // next palette
+      relativeChange(&effectPalette, 1, 0, strip.getPaletteCount() -1); 
       switch(lastIR6ColourIdx) {
         case 0: colorFromUint32(COLOR_RED);       break;
         case 1: colorFromUint32(COLOR_REDDISH);   break;


void decodeIR21(uint32_t code)
{
  switch (code) {
    case IR21_BRIGHTER:  relativeChange(&bri, 10);         break;
    case IR21_DARKER:    relativeChange(&bri, -10, 5);     break;
    case IR21_OFF:       briLast = bri; bri = 0;           break;

        default:                                  break;
      }
      lastIR6ColourIdx++;
      if(lastIR6ColourIdx > 12) lastIR6ColourIdx = 0;                      break;
    case IR6_MUTE: effectCurrent = 0; effectPalette = 0; colorFromUint32(COLOR_WHITE); bri=255; break;
  }
  lastValidCode = code;
