// https://www.reddit.com/r/FastLED/comments/1ekg6jr/controlling_4_separate_screens_from_the_same_board/

#include <FastLED.h>

CRGB ledsLB[72], ledsLR[6], ledsRR[6], ledsRB[72];

void setup() {
  FastLED.addLeds<WS2812B, 26, GRB>(ledsLB, 72);
  FastLED.addLeds<WS2812B, 25, GRB>(ledsLR, 6);
  FastLED.addLeds<WS2812B, 23, GRB>(ledsRR, 6);
  FastLED.addLeds<WS2812B, 22, GRB>(ledsRB, 72);
}

void loop() {
  uint8_t hueBase = beatsin8(12, 0, 255);
  for (uint8_t row = 0; row < 6; row++) {
    uint8_t brightness = beatsin8(30, 180, 255, 0, row * 25);
    uint8_t hue = hueBase;
    for (uint8_t ledno = 0; ledno < 12; ledno++) {
      ledsLB[row * 12 + ledno] = CHSV(hue, 255, brightness);
      hue += 6;
    }
    ledsLR[5 - row] = CHSV(hue, 255, brightness);
    hue += 6;
    ledsRR[5 - row] = CHSV(hue, 255, brightness);
    hue += 6;
    for (uint8_t ledno = 0; ledno < 12; ledno++) {
      ledsRB[row * 12 + ledno] = CHSV(hue, 255, brightness);
      hue += 6;
    }
  }
  FastLED.show();
  delay(20);
}