feat: add music sync viz modes and auto_gain audio filter
Lint & Test / test (push) Has been cancelled
Lint & Test / test (push) Has been cancelled
Add 4 new audio visualization modes powered by MusicAnalyzer: - pulse_on_beat: BPM-synced pulsing with smooth beat phase - energy_gradient: bass/mid/treble mapped to scrolling gradient - spectrum_bands: three VU zones for frequency bands - strobe_on_drop: state-driven strobe on detected musical drops MusicAnalyzer provides BPM estimation (median IBI), beat phase tracking, asymmetric energy envelope, 3-band frequency splitting, and drop detection state machine (idle/buildup/drop/recovery). Add auto_gain audio filter for automatic level normalization via rolling peak tracking with configurable target level and response time. Deprecate auto_gain on Audio Value Source (use the filter instead).
This commit is contained in:
@@ -248,6 +248,10 @@
|
||||
<option value="spectrum" data-i18n="color_strip.audio.viz.spectrum">Spectrum Analyzer</option>
|
||||
<option value="beat_pulse" data-i18n="color_strip.audio.viz.beat_pulse">Beat Pulse</option>
|
||||
<option value="vu_meter" data-i18n="color_strip.audio.viz.vu_meter">VU Meter</option>
|
||||
<option value="pulse_on_beat" data-i18n="color_strip.audio.viz.pulse_on_beat">Pulse on Beat</option>
|
||||
<option value="energy_gradient" data-i18n="color_strip.audio.viz.energy_gradient">Energy Gradient</option>
|
||||
<option value="spectrum_bands" data-i18n="color_strip.audio.viz.spectrum_bands">Spectrum Bands</option>
|
||||
<option value="strobe_on_drop" data-i18n="color_strip.audio.viz.strobe_on_drop">Strobe on Drop</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
@@ -320,6 +324,17 @@
|
||||
<div id="css-editor-audio-color-peak-container"></div>
|
||||
</div>
|
||||
|
||||
<div id="css-editor-audio-beat-decay-group" class="form-group" style="display:none">
|
||||
<div class="label-row">
|
||||
<label>
|
||||
<span data-i18n="color_strip.audio.beat_decay">Beat Decay:</span>
|
||||
</label>
|
||||
<button type="button" class="hint-toggle" onclick="toggleHint(this)" title="?" data-i18n-aria-label="aria.hint">?</button>
|
||||
</div>
|
||||
<small class="input-hint" style="display:none" data-i18n="color_strip.audio.beat_decay.hint">How quickly the beat pulse fades. Lower values = longer fade, higher = snappier response.</small>
|
||||
<div id="css-editor-audio-beat-decay-container"></div>
|
||||
</div>
|
||||
|
||||
<div id="css-editor-audio-mirror-group" class="form-group" style="display:none">
|
||||
<div class="label-row">
|
||||
<label for="css-editor-audio-mirror" data-i18n="color_strip.audio.mirror">Mirror:</label>
|
||||
|
||||
@@ -134,17 +134,8 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="label-row">
|
||||
<label for="value-source-auto-gain" data-i18n="value_source.auto_gain">Auto Gain:</label>
|
||||
<button type="button" class="hint-toggle" onclick="toggleHint(this)" title="?" data-i18n-aria-label="aria.hint">?</button>
|
||||
</div>
|
||||
<small class="input-hint" style="display:none" data-i18n="value_source.auto_gain.hint">Automatically normalize audio levels so output uses the full range, regardless of input volume</small>
|
||||
<label class="toggle-label">
|
||||
<input type="checkbox" id="value-source-auto-gain">
|
||||
<span data-i18n="value_source.auto_gain.enable">Enable auto-gain</span>
|
||||
</label>
|
||||
</div>
|
||||
<!-- Auto-gain removed: use the auto_gain audio filter instead -->
|
||||
<input type="hidden" id="value-source-auto-gain">
|
||||
|
||||
<div class="form-group">
|
||||
<div class="label-row">
|
||||
|
||||
Reference in New Issue
Block a user