   }
 }
 
-void oneRandom(byte i) {
+void oneRandom(uint16_t i) {
   bool rainbow = settings.c1 > 100;
   byte _size = mapRange(settings.c2 > 100 ? settings.c2 - 101 : settings.c2, 0, 100, 0, 255);
   leds[i] = CHSV(

  } while (millis() < lastFrameTime + 1000 / MAX_FPS);
}

inline bool isImaginary(byte x, byte y) {
  return x >= WIDTH || y >= HEIGHT || (
    STAGGERED && (x % 2 != y % 2));
}
void setAt(byte x, byte y, CRGB color) {
  if (STAGGERED) {
    if (isImaginary(x, y)) {
      return;
    }
    byte idx = x / 2 + (x % 2) * (BASE_WID + 1) + WIDTH * (y / 2);
    if (idx >= NUM_LEDS) {
      return;
    }
    leds[idx] = color;
  } else {
    byte idx = ((ZIGZAG && y % 2) ? (WIDTH - 1 - x) : x) + y * WIDTH;
    if (idx < NUM_LEDS) {
      leds[idx] = color;
    }
  }
}
void fillRow(byte row, CRGB color) {
  if (STAGGERED) {
    byte start = row * WIDTH / 2;
    byte num = WIDTH / 2;
    if (row % 2) {
      start += 1;
    } else {

// BLUME FEATHER: 72/12/false/false/textmode=true
// NIC'S BLUME: 40/6/true/false/false
// BLUME DUBIOUS: 59/6/true/false/false
// BLUME BEACON: 40/6/true/false/false

#define DEBUG false

