Skip to content

Add 'Track Character' and 'Spectral Balance' audio palettes - #1

Open
netmindz wants to merge 28 commits into
pr-palettesfrom
add-palettes-3-4
Open

netmindz wants to merge 28 commits into
pr-palettesfrom
add-palettes-3-4

Conversation

@netmindz

Copy link
Copy Markdown
Owner

Summary

  • Ports upstream WLED PR #5467 to this usermod.
  • Adds two new audio-reactive palettes (MAX_PALETTES 3 → 5): "Track Character" (spectral-centroid based hue) and "Spectral Balance" (bass/mid/high energy-ratio based hue).
  • Introduces paletteBandAvg[], a slowly-smoothed (~390ms time constant EMA, cadence-independent) per-band average used only by the two new palettes so their colors reflect overall tonal character rather than reacting to individual beats.
  • Resets paletteBandAvg alongside existing FFT data resets in onUpdateBegin() (both ESP32 and 8266 paths).

Test plan

  • Visual/behavioral verification requires building for ESP32 and observing the new palettes in the LED effects UI; not run in this environment.

netmindz and others added 28 commits June 20, 2026 10:59
Checks out WLED-MM and overrides AR_lib_deps via
platformio_override.ini to point at the commit under test,
then builds the esp32_4MB_V4_S environment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add CI workflow to build WLED-MM against this repo
remove WLED_ENABLE_HUB75MATRIX network source hack
Ports upstream WLED PR #5467: adds two new audio-reactive palettes derived
from a slowly-smoothed (~390ms EMA) per-band average, using spectral
centroid and bass/mid/high energy ratio to drive hue/saturation.
* fixes a stupid bracket error that wrongly disabled sliding-window FFT on the -S3
* add -P4 to high performance targets
* add a warning if WLEDMM_FASTPATH is not enabled on boards with FPU
Added preprocessor directives for enforcing WLEDMM compatibility
Use the standard flag that identifies WLED-MM
upstream WLED does not use stack space for oappend()
a few additions from WLED-MM that were lost when transitioning to out-of-tree
building audioreactive v2 for WLED / WLED-MM
* Check for MCU capabilities instead of directly checking chip names
* Some additional sanity checks
* Basic support for building with ESP-IDF V5.5.x
Added backwards compatibility definitions for ESP-IDF v3, based on esp32 capabilities.
another hack for backwards campatibility
* Add silence-based stop for audio sync transmission
* hide "silence stop" on 8266
* bugfix: reset silence flag when not in send mode
* reset on task suspend/resume
* reset when not in send mode
* "receive-or-local" mode: only reactivate when data was received

---------

Co-authored-by: Frank <91616163+softhack007@users.noreply.github.com>
* Add audioreactive color palettes (Ratio, Hue, Spectrum)

Port the getCRGBForBand palette generation logic from the upstream
WLED usermods/audioreactive fork, adding an opt-in 'add-palettes'
setting that registers three audio-reactive color palettes with the
core palette system and refreshes them each loop.

* disable audiopalettes for WLED-MM builds

* add simple interlock for palettes
  - prevents that palettes are removed while fillAudioPalettes() runs
  - keep dummy getCRGBForBand() function body in WLED-MM

---------

Co-authored-by: Frank Möhle <91616163+softhack007@users.noreply.github.com>
- move my_mapf() out of the ARDUINO_ARCH_ESP32 section
- mark a few open ends as ToDO after merging to main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants