Add adaptive brightness value source with time-of-day and scene modes
New "adaptive" value source type that automatically adjusts brightness based on external conditions. Two sub-modes: time-of-day (schedule-based interpolation with midnight wrap) and scene brightness (frame luminance analysis via numpy BT.601 subsampling with EMA smoothing). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -774,10 +774,11 @@
|
||||
"value_source.name.placeholder": "Brightness Pulse",
|
||||
"value_source.name.hint": "A descriptive name for this value source",
|
||||
"value_source.type": "Type:",
|
||||
"value_source.type.hint": "Static outputs a constant value. Animated cycles through a waveform. Audio reacts to sound input.",
|
||||
"value_source.type.hint": "Static outputs a constant value. Animated cycles through a waveform. Audio reacts to sound input. Adaptive adjusts based on time of day or scene brightness.",
|
||||
"value_source.type.static": "Static",
|
||||
"value_source.type.animated": "Animated",
|
||||
"value_source.type.audio": "Audio",
|
||||
"value_source.type.adaptive": "Adaptive",
|
||||
"value_source.value": "Value:",
|
||||
"value_source.value.hint": "Constant output value (0.0 = off, 1.0 = full brightness)",
|
||||
"value_source.waveform": "Waveform:",
|
||||
@@ -803,6 +804,25 @@
|
||||
"value_source.sensitivity.hint": "Gain multiplier for the audio signal (higher = more reactive)",
|
||||
"value_source.smoothing": "Smoothing:",
|
||||
"value_source.smoothing.hint": "Temporal smoothing (0 = instant response, 1 = very smooth/slow)",
|
||||
"value_source.adaptive_mode": "Adaptive Mode:",
|
||||
"value_source.adaptive_mode.hint": "Time of Day adjusts brightness on a daily schedule. Scene analyzes picture brightness in real time.",
|
||||
"value_source.adaptive_mode.time_of_day": "Time of Day",
|
||||
"value_source.adaptive_mode.scene": "Scene Brightness",
|
||||
"value_source.schedule": "Schedule:",
|
||||
"value_source.schedule.hint": "Define at least 2 time points. Brightness interpolates linearly between them, wrapping at midnight.",
|
||||
"value_source.schedule.add": "+ Add Point",
|
||||
"value_source.schedule.points": "points",
|
||||
"value_source.picture_source": "Picture Source:",
|
||||
"value_source.picture_source.hint": "The picture source whose frames will be analyzed for average brightness.",
|
||||
"value_source.scene_behavior": "Behavior:",
|
||||
"value_source.scene_behavior.hint": "Complement: dark scene = high brightness (ideal for ambient backlight). Match: bright scene = high brightness.",
|
||||
"value_source.scene_behavior.complement": "Complement (dark → bright)",
|
||||
"value_source.scene_behavior.match": "Match (bright → bright)",
|
||||
"value_source.adaptive_min_value": "Min Value:",
|
||||
"value_source.adaptive_min_value.hint": "Minimum output brightness",
|
||||
"value_source.adaptive_max_value": "Max Value:",
|
||||
"value_source.adaptive_max_value.hint": "Maximum output brightness",
|
||||
"value_source.error.schedule_min": "Schedule requires at least 2 time points",
|
||||
"value_source.description": "Description (optional):",
|
||||
"value_source.description.placeholder": "Describe this value source...",
|
||||
"value_source.description.hint": "Optional notes about this value source",
|
||||
|
||||
@@ -774,10 +774,11 @@
|
||||
"value_source.name.placeholder": "Пульс яркости",
|
||||
"value_source.name.hint": "Описательное имя для этого источника значений",
|
||||
"value_source.type": "Тип:",
|
||||
"value_source.type.hint": "Статический выдаёт постоянное значение. Анимированный циклически меняет форму волны. Аудио реагирует на звук.",
|
||||
"value_source.type.hint": "Статический выдаёт постоянное значение. Анимированный циклически меняет форму волны. Аудио реагирует на звук. Адаптивный подстраивается под время суток или яркость сцены.",
|
||||
"value_source.type.static": "Статический",
|
||||
"value_source.type.animated": "Анимированный",
|
||||
"value_source.type.audio": "Аудио",
|
||||
"value_source.type.adaptive": "Адаптивный",
|
||||
"value_source.value": "Значение:",
|
||||
"value_source.value.hint": "Постоянное выходное значение (0.0 = выкл, 1.0 = полная яркость)",
|
||||
"value_source.waveform": "Форма волны:",
|
||||
@@ -803,6 +804,25 @@
|
||||
"value_source.sensitivity.hint": "Множитель усиления аудиосигнала (выше = более реактивный)",
|
||||
"value_source.smoothing": "Сглаживание:",
|
||||
"value_source.smoothing.hint": "Временное сглаживание (0 = мгновенный отклик, 1 = очень плавный/медленный)",
|
||||
"value_source.adaptive_mode": "Адаптивный режим:",
|
||||
"value_source.adaptive_mode.hint": "Время суток регулирует яркость по дневному расписанию. Сцена анализирует яркость изображения в реальном времени.",
|
||||
"value_source.adaptive_mode.time_of_day": "Время суток",
|
||||
"value_source.adaptive_mode.scene": "Яркость сцены",
|
||||
"value_source.schedule": "Расписание:",
|
||||
"value_source.schedule.hint": "Определите минимум 2 временные точки. Яркость линейно интерполируется между ними, с переходом через полночь.",
|
||||
"value_source.schedule.add": "+ Добавить точку",
|
||||
"value_source.schedule.points": "точек",
|
||||
"value_source.picture_source": "Источник изображения:",
|
||||
"value_source.picture_source.hint": "Источник изображения, кадры которого будут анализироваться на среднюю яркость.",
|
||||
"value_source.scene_behavior": "Поведение:",
|
||||
"value_source.scene_behavior.hint": "Дополнение: тёмная сцена = высокая яркость (для фоновой подсветки). Совпадение: яркая сцена = высокая яркость.",
|
||||
"value_source.scene_behavior.complement": "Дополнение (тёмный → ярко)",
|
||||
"value_source.scene_behavior.match": "Совпадение (яркий → ярко)",
|
||||
"value_source.adaptive_min_value": "Мин. значение:",
|
||||
"value_source.adaptive_min_value.hint": "Минимальная выходная яркость",
|
||||
"value_source.adaptive_max_value": "Макс. значение:",
|
||||
"value_source.adaptive_max_value.hint": "Максимальная выходная яркость",
|
||||
"value_source.error.schedule_min": "Расписание требует минимум 2 временные точки",
|
||||
"value_source.description": "Описание (необязательно):",
|
||||
"value_source.description.placeholder": "Опишите этот источник значений...",
|
||||
"value_source.description.hint": "Необязательные заметки об этом источнике значений",
|
||||
|
||||
Reference in New Issue
Block a user