Add value sources for dynamic brightness control on LED targets
Introduces a new Value Source entity that produces a scalar float (0.0-1.0) for dynamic brightness modulation. Three subtypes: Static (constant), Animated (sine/triangle/square/sawtooth waveform), and Audio-reactive (RMS/peak/beat from mono audio source). Value sources can be optionally attached to LED targets to control brightness each frame. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -760,5 +760,54 @@
|
||||
"audio_source.updated": "Audio source updated",
|
||||
"audio_source.deleted": "Audio source deleted",
|
||||
"audio_source.delete.confirm": "Are you sure you want to delete this audio source?",
|
||||
"audio_source.error.name_required": "Please enter a name"
|
||||
"audio_source.error.name_required": "Please enter a name",
|
||||
|
||||
"streams.group.value": "Value Sources",
|
||||
"value_source.group.title": "🎚️ Value Sources",
|
||||
"value_source.add": "Add Value Source",
|
||||
"value_source.edit": "Edit Value Source",
|
||||
"value_source.name": "Name:",
|
||||
"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.static": "Static",
|
||||
"value_source.type.animated": "Animated",
|
||||
"value_source.type.audio": "Audio",
|
||||
"value_source.value": "Value:",
|
||||
"value_source.value.hint": "Constant output value (0.0 = off, 1.0 = full brightness)",
|
||||
"value_source.waveform": "Waveform:",
|
||||
"value_source.waveform.hint": "Shape of the brightness animation cycle",
|
||||
"value_source.waveform.sine": "Sine",
|
||||
"value_source.waveform.triangle": "Triangle",
|
||||
"value_source.waveform.square": "Square",
|
||||
"value_source.waveform.sawtooth": "Sawtooth",
|
||||
"value_source.speed": "Speed (cpm):",
|
||||
"value_source.speed.hint": "Cycles per minute — how fast the waveform repeats (1 = very slow, 120 = very fast)",
|
||||
"value_source.min_value": "Min Value:",
|
||||
"value_source.min_value.hint": "Minimum output of the waveform cycle",
|
||||
"value_source.max_value": "Max Value:",
|
||||
"value_source.max_value.hint": "Maximum output of the waveform cycle",
|
||||
"value_source.audio_source": "Audio Source:",
|
||||
"value_source.audio_source.hint": "Mono audio source to read audio levels from",
|
||||
"value_source.mode": "Mode:",
|
||||
"value_source.mode.hint": "RMS measures average volume. Peak tracks loudest moments. Beat triggers on rhythm.",
|
||||
"value_source.mode.rms": "RMS (Volume)",
|
||||
"value_source.mode.peak": "Peak",
|
||||
"value_source.mode.beat": "Beat",
|
||||
"value_source.sensitivity": "Sensitivity:",
|
||||
"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.description": "Description (optional):",
|
||||
"value_source.description.placeholder": "Describe this value source...",
|
||||
"value_source.description.hint": "Optional notes about this value source",
|
||||
"value_source.created": "Value source created",
|
||||
"value_source.updated": "Value source updated",
|
||||
"value_source.deleted": "Value source deleted",
|
||||
"value_source.delete.confirm": "Are you sure you want to delete this value source?",
|
||||
"value_source.error.name_required": "Please enter a name",
|
||||
"targets.brightness_vs": "Brightness Source:",
|
||||
"targets.brightness_vs.hint": "Optional value source that dynamically controls brightness each frame (overrides device brightness)",
|
||||
"targets.brightness_vs.none": "None (device brightness)"
|
||||
}
|
||||
|
||||
@@ -760,5 +760,54 @@
|
||||
"audio_source.updated": "Аудиоисточник обновлён",
|
||||
"audio_source.deleted": "Аудиоисточник удалён",
|
||||
"audio_source.delete.confirm": "Удалить этот аудиоисточник?",
|
||||
"audio_source.error.name_required": "Введите название"
|
||||
"audio_source.error.name_required": "Введите название",
|
||||
|
||||
"streams.group.value": "Источники значений",
|
||||
"value_source.group.title": "🎚️ Источники значений",
|
||||
"value_source.add": "Добавить источник значений",
|
||||
"value_source.edit": "Редактировать источник значений",
|
||||
"value_source.name": "Название:",
|
||||
"value_source.name.placeholder": "Пульс яркости",
|
||||
"value_source.name.hint": "Описательное имя для этого источника значений",
|
||||
"value_source.type": "Тип:",
|
||||
"value_source.type.hint": "Статический выдаёт постоянное значение. Анимированный циклически меняет форму волны. Аудио реагирует на звук.",
|
||||
"value_source.type.static": "Статический",
|
||||
"value_source.type.animated": "Анимированный",
|
||||
"value_source.type.audio": "Аудио",
|
||||
"value_source.value": "Значение:",
|
||||
"value_source.value.hint": "Постоянное выходное значение (0.0 = выкл, 1.0 = полная яркость)",
|
||||
"value_source.waveform": "Форма волны:",
|
||||
"value_source.waveform.hint": "Форма цикла анимации яркости",
|
||||
"value_source.waveform.sine": "Синус",
|
||||
"value_source.waveform.triangle": "Треугольник",
|
||||
"value_source.waveform.square": "Прямоугольник",
|
||||
"value_source.waveform.sawtooth": "Пила",
|
||||
"value_source.speed": "Скорость (цикл/мин):",
|
||||
"value_source.speed.hint": "Циклов в минуту — как быстро повторяется волна (1 = очень медленно, 120 = очень быстро)",
|
||||
"value_source.min_value": "Мин. значение:",
|
||||
"value_source.min_value.hint": "Минимальный выход цикла волны",
|
||||
"value_source.max_value": "Макс. значение:",
|
||||
"value_source.max_value.hint": "Максимальный выход цикла волны",
|
||||
"value_source.audio_source": "Аудиоисточник:",
|
||||
"value_source.audio_source.hint": "Моно-аудиоисточник для считывания уровня звука",
|
||||
"value_source.mode": "Режим:",
|
||||
"value_source.mode.hint": "RMS измеряет среднюю громкость. Пик отслеживает самые громкие моменты. Бит реагирует на ритм.",
|
||||
"value_source.mode.rms": "RMS (Громкость)",
|
||||
"value_source.mode.peak": "Пик",
|
||||
"value_source.mode.beat": "Бит",
|
||||
"value_source.sensitivity": "Чувствительность:",
|
||||
"value_source.sensitivity.hint": "Множитель усиления аудиосигнала (выше = более реактивный)",
|
||||
"value_source.smoothing": "Сглаживание:",
|
||||
"value_source.smoothing.hint": "Временное сглаживание (0 = мгновенный отклик, 1 = очень плавный/медленный)",
|
||||
"value_source.description": "Описание (необязательно):",
|
||||
"value_source.description.placeholder": "Опишите этот источник значений...",
|
||||
"value_source.description.hint": "Необязательные заметки об этом источнике значений",
|
||||
"value_source.created": "Источник значений создан",
|
||||
"value_source.updated": "Источник значений обновлён",
|
||||
"value_source.deleted": "Источник значений удалён",
|
||||
"value_source.delete.confirm": "Удалить этот источник значений?",
|
||||
"value_source.error.name_required": "Введите название",
|
||||
"targets.brightness_vs": "Источник яркости:",
|
||||
"targets.brightness_vs.hint": "Необязательный источник значений для динамического управления яркостью каждый кадр (переопределяет яркость устройства)",
|
||||
"targets.brightness_vs.none": "Нет (яркость устройства)"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user