#include <FastLED.h>
#define LED_PIN 3
#define NUM_LEDS 241
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
// how many LEDs in each ring
const uint8_t led_count[] = {60, 48, 40, 32, 24, 16, 12, 8, 1};
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
}
void loop() {
static uint16_t k = random16();
uint8_t H[NUM_LEDS];
memset(H, 0, NUM_LEDS);
fill_raw_noise8(H, NUM_LEDS, 4, 0, 10, k);
for (int i = 0; i < NUM_LEDS; ++i) {
uint8_t index = 255.0 * i / NUM_LEDS;
uint8_t one = sin8(index * 4 - k * 2);
uint8_t two = sin8(index * 16 + k);
leds[i] = CHSV(H[i] + k, 255, one * two / 255.0);
}
k++;
FastLED.show();
}