feat: expand color strip sources with new effects, gradient improvements, and daylight/candlelight enhancements
Some checks failed
Lint & Test / test (push) Failing after 29s

Effects: add 7 new procedural effects (rain, comet, bouncing ball, fireworks,
sparkle rain, lava lamp, wave interference) and custom palette support via
user-defined [[pos,R,G,B],...] stops.

Gradient: add easing functions (linear, ease_in_out, step, cubic) for stop
interpolation, plus noise_perturb and hue_rotate animation types.

Daylight: add longitude field and NOAA solar equations for accurate
sunrise/sunset based on latitude, longitude, and day of year.

Candlelight: add wind simulation (correlated gusts), candle type presets
(taper/votive/bonfire), and wax drip effect with localized brightness dips.

Also fixes editor preview to include all new fields for inline LED test.
This commit is contained in:
2026-03-23 22:40:55 +03:00
parent c4dce19b2e
commit 9b80076b5b
12 changed files with 1015 additions and 120 deletions

View File

@@ -963,6 +963,16 @@
"color_strip.static_color.hint": "The solid color that will be sent to all LEDs on the strip.",
"color_strip.gradient.preview": "Gradient:",
"color_strip.gradient.preview.hint": "Visual preview. Click the marker track below to add a stop. Drag markers to reposition.",
"color_strip.gradient.easing": "Easing:",
"color_strip.gradient.easing.hint": "Controls how colors blend between gradient stops.",
"color_strip.gradient.easing.linear": "Linear",
"color_strip.gradient.easing.linear.desc": "Constant-rate blending between stops",
"color_strip.gradient.easing.ease_in_out": "Smooth",
"color_strip.gradient.easing.ease_in_out.desc": "S-curve: slow start and end, fast middle",
"color_strip.gradient.easing.step": "Step",
"color_strip.gradient.easing.step.desc": "Hard jumps between colors with no blending",
"color_strip.gradient.easing.cubic": "Cubic",
"color_strip.gradient.easing.cubic.desc": "Cubic ease — accelerating blend curve",
"color_strip.gradient.stops": "Color Stops:",
"color_strip.gradient.stops.hint": "Each stop defines a color at a relative position (0.0 = start, 1.0 = end). The ↔ button adds a right-side color to create a hard edge at that stop.",
"color_strip.gradient.stops_count": "stops",
@@ -1012,6 +1022,10 @@
"color_strip.animation.type.candle.desc": "Warm flickering candle-like glow",
"color_strip.animation.type.rainbow_fade": "Rainbow Fade",
"color_strip.animation.type.rainbow_fade.desc": "Cycles through the entire hue spectrum",
"color_strip.animation.type.noise_perturb": "Noise Perturb",
"color_strip.animation.type.noise_perturb.desc": "Perturbs gradient stop positions with organic noise each frame",
"color_strip.animation.type.hue_rotate": "Hue Rotate",
"color_strip.animation.type.hue_rotate.desc": "Smoothly rotates all pixel hues while preserving saturation and brightness",
"color_strip.animation.speed": "Speed:",
"color_strip.animation.speed.hint": "Animation speed multiplier. 1.0 ≈ one cycle per second for Breathing; higher values cycle faster.",
"color_strip.color_cycle.colors": "Colors:",
@@ -1112,6 +1126,8 @@
"color_strip.daylight.real_time": "Real Time",
"color_strip.daylight.latitude": "Latitude:",
"color_strip.daylight.latitude.hint": "Your geographic latitude (-90 to 90). Affects sunrise/sunset timing in real-time mode.",
"color_strip.daylight.longitude": "Longitude:",
"color_strip.daylight.longitude.hint": "Your geographic longitude (-180 to 180). Adjusts solar noon offset for accurate sunrise/sunset timing.",
"color_strip.type.candlelight": "Candlelight",
"color_strip.type.candlelight.desc": "Realistic flickering candle simulation",
"color_strip.type.candlelight.hint": "Simulates realistic candle flickering across all LEDs with warm tones and organic flicker patterns.",
@@ -1124,6 +1140,18 @@
"color_strip.candlelight.num_candles.hint": "How many independent candle sources along the strip. Each flickers with its own pattern.",
"color_strip.candlelight.speed": "Flicker Speed:",
"color_strip.candlelight.speed.hint": "Speed of the flicker animation. Higher values produce faster, more restless flames.",
"color_strip.candlelight.wind": "Wind:",
"color_strip.candlelight.wind.hint": "Wind simulation strength. Higher values create correlated gusts that make all candles flicker together.",
"color_strip.candlelight.type": "Candle Type:",
"color_strip.candlelight.type.hint": "Preset that adjusts flicker behavior without changing other settings.",
"color_strip.candlelight.type.default": "Default",
"color_strip.candlelight.type.default.desc": "Standard candle flicker",
"color_strip.candlelight.type.taper": "Taper",
"color_strip.candlelight.type.taper.desc": "Tall, steady candle with reduced flicker",
"color_strip.candlelight.type.votive": "Votive",
"color_strip.candlelight.type.votive.desc": "Small, flickery candle with narrow glow",
"color_strip.candlelight.type.bonfire": "Bonfire",
"color_strip.candlelight.type.bonfire.desc": "Large, chaotic fire with extra warmth",
"color_strip.type.processed": "Processed",
"color_strip.type.processed.desc": "Apply a processing template to another source",
"color_strip.type.processed.hint": "Wraps an existing color strip source and pipes its output through a filter chain.",
@@ -1199,6 +1227,22 @@
"color_strip.effect.noise.desc": "Scrolling fractal value noise mapped to a palette",
"color_strip.effect.aurora": "Aurora",
"color_strip.effect.aurora.desc": "Layered noise bands that drift and blend — northern lights style",
"color_strip.effect.rain": "Rain",
"color_strip.effect.rain.desc": "Raindrops fall down the strip with trailing tails",
"color_strip.effect.comet": "Comet",
"color_strip.effect.comet.desc": "Multiple comets with curved, pulsing tails",
"color_strip.effect.bouncing_ball": "Bouncing Ball",
"color_strip.effect.bouncing_ball.desc": "Physics-simulated balls bouncing with gravity",
"color_strip.effect.fireworks": "Fireworks",
"color_strip.effect.fireworks.desc": "Rockets launch and explode into colorful bursts",
"color_strip.effect.sparkle_rain": "Sparkle Rain",
"color_strip.effect.sparkle_rain.desc": "Twinkling star field with smooth fade-in/fade-out",
"color_strip.effect.lava_lamp": "Lava Lamp",
"color_strip.effect.lava_lamp.desc": "Slow-moving colored blobs that merge and separate",
"color_strip.effect.wave_interference": "Wave Interference",
"color_strip.effect.wave_interference.desc": "Two counter-propagating waves creating interference patterns",
"color_strip.effect.custom_palette": "Custom Palette:",
"color_strip.effect.custom_palette.hint": "JSON array of [position, R, G, B] stops, e.g. [[0,0,0,0],[0.5,255,0,0],[1,255,255,0]]",
"color_strip.effect.speed": "Speed:",
"color_strip.effect.speed.hint": "Speed multiplier for the effect animation (0.1 = very slow, 10.0 = very fast).",
"color_strip.effect.palette": "Palette:",
@@ -1219,6 +1263,7 @@
"color_strip.palette.aurora": "Aurora",
"color_strip.palette.sunset": "Sunset",
"color_strip.palette.ice": "Ice",
"color_strip.palette.custom": "Custom",
"audio_source.title": "Audio Sources",
"audio_source.group.multichannel": "Multichannel",
"audio_source.group.mono": "Mono",