Add 5 procedural LED effects, gradient presets, auto-crop min aspect ratio, static source polling optimization
New features: - Procedural effect source type with fire, meteor, plasma, noise, and aurora algorithms using palette LUT system and 1D value noise generator - 12 predefined gradient presets (rainbow, sunset, ocean, forest, fire, lava, aurora, ice, warm, cool, neon, pastel) selectable from a dropdown in the gradient editor - Auto-crop filter: min aspect ratio parameter to prevent false-positive cropping in dark scenes on ultrawide displays Optimization: - Static/gradient sources without animation: stream thread sleeps 0.25s instead of frame_time; processor repolls at frame_time instead of 5ms (~40x fewer iterations) - Inverted isinstance checks in routes to test for PictureColorStripSource only Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -589,6 +589,21 @@
|
||||
"color_strip.gradient.position": "Position (0.0–1.0)",
|
||||
"color_strip.gradient.bidir.hint": "Add a second color on the right side of this stop to create a hard edge in the gradient.",
|
||||
"color_strip.gradient.min_stops": "Gradient must have at least 2 stops",
|
||||
"color_strip.gradient.preset": "Preset:",
|
||||
"color_strip.gradient.preset.hint": "Load a predefined gradient palette. Selecting a preset replaces the current stops.",
|
||||
"color_strip.gradient.preset.custom": "— Custom —",
|
||||
"color_strip.gradient.preset.rainbow": "Rainbow",
|
||||
"color_strip.gradient.preset.sunset": "Sunset",
|
||||
"color_strip.gradient.preset.ocean": "Ocean",
|
||||
"color_strip.gradient.preset.forest": "Forest",
|
||||
"color_strip.gradient.preset.fire": "Fire",
|
||||
"color_strip.gradient.preset.lava": "Lava",
|
||||
"color_strip.gradient.preset.aurora": "Aurora",
|
||||
"color_strip.gradient.preset.ice": "Ice",
|
||||
"color_strip.gradient.preset.warm": "Warm",
|
||||
"color_strip.gradient.preset.cool": "Cool",
|
||||
"color_strip.gradient.preset.neon": "Neon",
|
||||
"color_strip.gradient.preset.pastel": "Pastel",
|
||||
"color_strip.animation": "Animation",
|
||||
"color_strip.animation.type": "Effect:",
|
||||
"color_strip.animation.type.hint": "Animation effect to apply.",
|
||||
@@ -617,5 +632,39 @@
|
||||
"color_strip.color_cycle.add_color": "+ Add Color",
|
||||
"color_strip.color_cycle.speed": "Speed:",
|
||||
"color_strip.color_cycle.speed.hint": "Cycle speed multiplier. 1.0 ≈ one full cycle every 20 seconds; higher values cycle faster.",
|
||||
"color_strip.color_cycle.min_colors": "Color cycle must have at least 2 colors"
|
||||
"color_strip.color_cycle.min_colors": "Color cycle must have at least 2 colors",
|
||||
"color_strip.type.effect": "Effect",
|
||||
"color_strip.type.effect.hint": "Procedural LED effects (fire, meteor, plasma, noise, aurora) generated in real time.",
|
||||
"color_strip.effect.type": "Effect Type:",
|
||||
"color_strip.effect.type.hint": "Choose the procedural algorithm.",
|
||||
"color_strip.effect.fire": "Fire",
|
||||
"color_strip.effect.fire.desc": "Cellular automaton simulating rising flames with heat diffusion",
|
||||
"color_strip.effect.meteor": "Meteor",
|
||||
"color_strip.effect.meteor.desc": "Bright head travels along the strip with an exponential-decay tail",
|
||||
"color_strip.effect.plasma": "Plasma",
|
||||
"color_strip.effect.plasma.desc": "Overlapping sine waves mapped to a palette — classic demo-scene effect",
|
||||
"color_strip.effect.noise": "Noise",
|
||||
"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.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:",
|
||||
"color_strip.effect.palette.hint": "Color palette used to map effect values to RGB colors.",
|
||||
"color_strip.effect.color": "Meteor Color:",
|
||||
"color_strip.effect.color.hint": "Head color for the meteor effect.",
|
||||
"color_strip.effect.intensity": "Intensity:",
|
||||
"color_strip.effect.intensity.hint": "Effect intensity — controls spark rate (fire), tail decay (meteor), or brightness range (aurora).",
|
||||
"color_strip.effect.scale": "Scale:",
|
||||
"color_strip.effect.scale.hint": "Spatial scale — wave frequency (plasma), zoom level (noise), or band width (aurora).",
|
||||
"color_strip.effect.mirror": "Mirror:",
|
||||
"color_strip.effect.mirror.hint": "Bounce mode — the meteor reverses direction at strip ends instead of wrapping.",
|
||||
"color_strip.palette.fire": "Fire",
|
||||
"color_strip.palette.ocean": "Ocean",
|
||||
"color_strip.palette.lava": "Lava",
|
||||
"color_strip.palette.forest": "Forest",
|
||||
"color_strip.palette.rainbow": "Rainbow",
|
||||
"color_strip.palette.aurora": "Aurora",
|
||||
"color_strip.palette.sunset": "Sunset",
|
||||
"color_strip.palette.ice": "Ice"
|
||||
}
|
||||
|
||||
@@ -589,6 +589,21 @@
|
||||
"color_strip.gradient.position": "Позиция (0.0–1.0)",
|
||||
"color_strip.gradient.bidir.hint": "Добавить второй цвет справа от этой остановки для создания резкого перехода в градиенте.",
|
||||
"color_strip.gradient.min_stops": "Градиент должен содержать не менее 2 остановок",
|
||||
"color_strip.gradient.preset": "Пресет:",
|
||||
"color_strip.gradient.preset.hint": "Загрузить готовую палитру градиента. Выбор пресета заменяет текущие остановки.",
|
||||
"color_strip.gradient.preset.custom": "— Свой —",
|
||||
"color_strip.gradient.preset.rainbow": "Радуга",
|
||||
"color_strip.gradient.preset.sunset": "Закат",
|
||||
"color_strip.gradient.preset.ocean": "Океан",
|
||||
"color_strip.gradient.preset.forest": "Лес",
|
||||
"color_strip.gradient.preset.fire": "Огонь",
|
||||
"color_strip.gradient.preset.lava": "Лава",
|
||||
"color_strip.gradient.preset.aurora": "Аврора",
|
||||
"color_strip.gradient.preset.ice": "Лёд",
|
||||
"color_strip.gradient.preset.warm": "Тёплый",
|
||||
"color_strip.gradient.preset.cool": "Холодный",
|
||||
"color_strip.gradient.preset.neon": "Неон",
|
||||
"color_strip.gradient.preset.pastel": "Пастельный",
|
||||
"color_strip.animation": "Анимация",
|
||||
"color_strip.animation.type": "Эффект:",
|
||||
"color_strip.animation.type.hint": "Эффект анимации.",
|
||||
@@ -617,5 +632,39 @@
|
||||
"color_strip.color_cycle.add_color": "+ Добавить цвет",
|
||||
"color_strip.color_cycle.speed": "Скорость:",
|
||||
"color_strip.color_cycle.speed.hint": "Множитель скорости смены. 1.0 ≈ один полный цикл за 20 секунд; большие значения ускоряют смену.",
|
||||
"color_strip.color_cycle.min_colors": "Смена цвета должна содержать не менее 2 цветов"
|
||||
"color_strip.color_cycle.min_colors": "Смена цвета должна содержать не менее 2 цветов",
|
||||
"color_strip.type.effect": "Эффект",
|
||||
"color_strip.type.effect.hint": "Процедурные LED-эффекты (огонь, метеор, плазма, шум, аврора), генерируемые в реальном времени.",
|
||||
"color_strip.effect.type": "Тип эффекта:",
|
||||
"color_strip.effect.type.hint": "Выберите процедурный алгоритм.",
|
||||
"color_strip.effect.fire": "Огонь",
|
||||
"color_strip.effect.fire.desc": "Клеточный автомат, имитирующий поднимающееся пламя с диффузией тепла",
|
||||
"color_strip.effect.meteor": "Метеор",
|
||||
"color_strip.effect.meteor.desc": "Яркая точка движется по ленте с экспоненциально затухающим хвостом",
|
||||
"color_strip.effect.plasma": "Плазма",
|
||||
"color_strip.effect.plasma.desc": "Наложение синусоидальных волн с палитрой — классический демо-эффект",
|
||||
"color_strip.effect.noise": "Шум",
|
||||
"color_strip.effect.noise.desc": "Прокручиваемый фрактальный шум, отображённый на палитру",
|
||||
"color_strip.effect.aurora": "Аврора",
|
||||
"color_strip.effect.aurora.desc": "Наложенные шумовые полосы, дрейфующие и смешивающиеся — в стиле северного сияния",
|
||||
"color_strip.effect.speed": "Скорость:",
|
||||
"color_strip.effect.speed.hint": "Множитель скорости анимации эффекта (0.1 = очень медленно, 10.0 = очень быстро).",
|
||||
"color_strip.effect.palette": "Палитра:",
|
||||
"color_strip.effect.palette.hint": "Цветовая палитра для отображения значений эффекта в RGB-цвета.",
|
||||
"color_strip.effect.color": "Цвет метеора:",
|
||||
"color_strip.effect.color.hint": "Цвет головной точки метеора.",
|
||||
"color_strip.effect.intensity": "Интенсивность:",
|
||||
"color_strip.effect.intensity.hint": "Интенсивность эффекта — частота искр (огонь), затухание хвоста (метеор) или диапазон яркости (аврора).",
|
||||
"color_strip.effect.scale": "Масштаб:",
|
||||
"color_strip.effect.scale.hint": "Пространственный масштаб — частота волн (плазма), уровень масштабирования (шум) или ширина полос (аврора).",
|
||||
"color_strip.effect.mirror": "Отражение:",
|
||||
"color_strip.effect.mirror.hint": "Режим отскока — метеор меняет направление у краёв ленты вместо переноса.",
|
||||
"color_strip.palette.fire": "Огонь",
|
||||
"color_strip.palette.ocean": "Океан",
|
||||
"color_strip.palette.lava": "Лава",
|
||||
"color_strip.palette.forest": "Лес",
|
||||
"color_strip.palette.rainbow": "Радуга",
|
||||
"color_strip.palette.aurora": "Аврора",
|
||||
"color_strip.palette.sunset": "Закат",
|
||||
"color_strip.palette.ice": "Лёд"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user