87#define TWINKLE_SPEED 4
92#define TWINKLE_DENSITY 5
95#define SECONDS_PER_PALETTE 30
101#define AUTO_SELECT_BACKGROUND_COLOR 0
106#define COOL_LIKE_INCANDESCENT 1
145 uint16_t PRNG16 = 11337;
146 uint32_t clock32 = millis();
155 }
else if (bglight > 16) {
164 for (uint16_t i = 0; i <
mNumLeds; i++) {
165 PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384;
166 uint16_t myclockoffset16 = PRNG16;
167 PRNG16 = (uint16_t)(PRNG16 * 2053) + 1384;
168 uint8_t myspeedmultiplierQ5_3 =
169 ((((PRNG16 & 0xFF) >> 4) + (PRNG16 & 0x0F)) & 0x0F) + 0x08;
171 (uint32_t)((clock32 * myspeedmultiplierQ5_3) >> 3) +
173 uint8_t myunique8 = PRNG16 >> 8;
178 int16_t deltabright = cbright - backgroundBrightness;
179 if (deltabright >= 32 || (!bg)) {
181 }
else if (deltabright > 0) {
191 uint8_t fastcycle8 = ticks;
192 uint16_t slowcycle16 = (ticks >> 8) + salt;
193 slowcycle16 +=
sin8(slowcycle16);
194 slowcycle16 = (slowcycle16 * 2053) + 1384;
195 uint8_t slowcycle8 = (slowcycle16 & 0xFF) + (slowcycle16 >> 8);
202 uint8_t hue = slowcycle8 - salt;
220 return 255 - (i + (i / 2));
228 uint8_t cooling = (phase - 128) >> 4;
229 c.g =
qsub8(c.g, cooling);
230 c.b =
qsub8(c.b, cooling * 2);
244 0x00580c, 0x00580c, 0x00580c, 0x00580c, 0x00580c, 0x00580c,
245 0x00580c, 0x00580c, 0x00580c, 0x00580c, 0x00580c, 0x00580c,
246 0x00580c, 0x00580c, 0x00580c, 0xB00402};
277 0x304048, 0x304048, 0x304048, 0x304048, 0x304048, 0x304048,
278 0x304048, 0x304048, 0x304048, 0x304048, 0x304048, 0x304048,
279 0x304048, 0x304048, 0x304048, 0xE0F0FF};
282 0xB80400, 0x902C02, 0xB80400, 0x902C02, 0x902C02, 0xB80400,
283 0x902C02, 0xB80400, 0x046002, 0x046002, 0x046002, 0x046002,
284 0x070758, 0x070758, 0x070758, 0x606820};
287 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040,
288 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040, 0x0C1040,
289 0x182080, 0x182080, 0x182080, 0x5080C0};
299 const uint8_t numberOfPalettes =
301 static uint8_t whichPalette = -1;
302 whichPalette =
addmod8(whichPalette, 1, numberOfPalettes);
central include file for FastLED, defines the CFastLED class/object
bool autoSelectBackgroundColor
CRGB computeOneTwinkle(uint32_t ms, uint8_t salt)
uint8_t attackDecayWave8(uint8_t i)
void chooseNextColorPalette(CRGBPalette16 &pal)
CRGBPalette16 currentPalette
bool coolLikeIncandescent
void drawTwinkleFox(CRGB *leds)
fl::Str fxName() const override
TwinkleFox(uint16_t num_leds)
CRGBPalette16 targetPalette
void draw(DrawContext context) override
void coolLikeIncandescentFunction(CRGB &c, uint8_t phase)
uint32_t TProgmemRGBPalette16[16]
CRGBPalette16 entries stored in PROGMEM memory.
#define FL_PROGMEM
PROGMEM keyword for storage.
LIB8STATIC uint8_t addmod8(uint8_t a, uint8_t b, uint8_t m)
Add two numbers, and calculate the modulo of the sum and a third number, M.
LIB8STATIC_ALWAYS_INLINE uint8_t qsub8(uint8_t i, uint8_t j)
Subtract one byte from another, saturating at 0x00.
const TProgmemRGBPalette16 PartyColors_p
HSV color ramp: blue, purple, pink, red, orange, yellow (and back).
const TProgmemRGBPalette16 RainbowColors_p
HSV Rainbow.
#define EVERY_N_MILLISECONDS(N)
Alias for EVERY_N_MILLIS.
#define sin8
Platform-independent alias of the fast sin implementation.
Implements the FastLED namespace macros.
const TProgmemRGBPalette16 * ActivePaletteList[]
const TProgmemRGBPalette16 Snow_p
const TProgmemRGBPalette16 RetroC9_p
CRGB ColorFromPalette(const CRGBPalette16 &pal, uint8_t index, uint8_t brightness, TBlendType blendType)
const TProgmemRGBPalette16 BlueWhite_p
CRGB blend(const CRGB &p1, const CRGB &p2, fract8 amountOfP2)
void nblendPaletteTowardPalette(CRGBPalette16 ¤t, CRGBPalette16 &target, uint8_t maxChanges)
const TProgmemRGBPalette16 RedGreenWhite_p
const TProgmemRGBPalette16 RedWhite_p
const TProgmemRGBPalette16 Ice_p
const TProgmemRGBPalette16 FairyLight_p
const TProgmemRGBPalette16 Holly_p
Implements a simple red square effect for 2D LED grids.
#define FASTLED_SMART_PTR(type)
FASTLED_FORCE_INLINE CRGB & nscale8_video(uint8_t scaledown)
Scale down a RGB to N/256ths of it's current brightness using "video" dimming rules.
constexpr uint32_t as_uint32_t() const noexcept
FASTLED_FORCE_INLINE uint8_t getAverageLight() const
Get the average of the R, G, and B values.
@ Gray
<div style='background:#808080;width:4em;height:4em;'></div>
@ Green
<div style='background:#008000;width:4em;height:4em;'></div>
@ Blue
<div style='background:#0000FF;width:4em;height:4em;'></div>
@ Red
<div style='background:#FF0000;width:4em;height:4em;'></div>
@ FairyLight
<div style='background:#FFE42D;width:4em;height:4em;'></div>
@ Black
<div style='background:#000000;width:4em;height:4em;'></div>
constexpr CRGB nscale8_constexpr(const CRGB scaledown) const
Representation of an RGB pixel (Red, Green, Blue)
#define AUTO_SELECT_BACKGROUND_COLOR
#define COOL_LIKE_INCANDESCENT