@@ -10,35 +10,10 @@ Issue Tracker is found here: www.github.com/xLightsSequencer/xLights/issues
1010
1111XLIGHTS/NUTCRACKER RELEASE NOTES
1212---------------------------------
13- 2026.07 April ?? , 2026
13+ 2026.07 April 28 , 2026
1414 -enh (MrPierreB) Add node animation playback to SubModels dialog.
1515 -enh (dkulp) Media-compatibility "Convert Now" now special-cases animated GIFs that were used as
1616 Video effects and turns them into normal Pictures effects that properly handle animated GIFs
17- -bug (dkulp) Replaced throwing std::stoi calls in OutputManager / xxxSerialOutput / HinksPix with
18- non-throwing std::strtol so corrupt config or controller responses no longer crash.
19- -bug (dkulp) State / Faces / Shockwave / VUMeter / Lyric / MatrixModel: added div-by-zero and
20- map.at() guards on render-thread paths that could crash on edge-case inputs.
21- -bug (dkulp) Faces / xlFontInfo / SpecialOptions / FileUtils / ip_utils / AudioManager: added
22- missing locks around static / shared caches that were mutated concurrently from
23- render workers and could corrupt or crash under heavy parallel rendering.
24- -bug (dkulp) E1.31 / ArtNet / DDP SetManyChannels: bounds-check the starting channel before
25- memcpy so an out-of-range channel can't overflow the packet buffer.
26- -bug (dkulp) AlphaPix / WLED / HinksPix: free curl_slist headers (and the WLED CURL handle) on
27- every exit path; firmware-upload filename copy now uses bounded strncpy.
28- -bug (dkulp) AudioManager: widened sample-loop counters to long so pcm conversion no longer
29- overflows on multi-hour audio; added missing int16 clamp on the NONVOCALS / VOCALS
30- mono fallback.
31- -bug (dkulp) Render engine: AggregatorRenderer::setPreviousFrameDone bounds-checks the frame
32- index before indexing the per-frame counter array.
33- -change (dkulp) Package Sequence: rewritten to walk SequenceMedia + every model/view-object's file
34- references + Matrix face images so shaders, custom images, videos, meshes, and
35- face/state assets are actually included. Show-relative paths preserved where possible;
36- external files relocated under typed subdirs (Images/ Videos/ Shaders/ Glediators/
37- Meshes/ Faces/) with folder-based disambiguation on basename collisions so packaged
38- filenames can't mimic PicturesEffect's animation-sequence detection. No more _lost/
39- dumping;
40- -change (dkulp) Packaging preferences: "Exclude Presets" renamed to "Exclude Videos" — the old option
41- stripped a rgbeffects element that no longer carries presets, so it was a no-op;
4217 -enh (dkulp) Waveform (macOS 12+): four new "Stem — Drums / Bass / Other / Vocals (ML)" right-click
4318 filters run Apple CoreML inference against HTDemucs to split the audio into its constituent
4419 parts. Both the waveform and the playback signal follow the picked stem — so "Stem — Drums"
@@ -99,6 +74,22 @@ XLIGHTS/NUTCRACKER RELEASE NOTES
9974 -enh (dkulp) Shader effect: dynamic uniforms emit JSON matching the effect-panel schema; JsonEffectPanel
10075 gains a reusable point2d control type, so iPad and desktop build the dynamic rows from the
10176 same description.
77+ -bug (dkulp) Replaced throwing std::stoi calls in OutputManager / xxxSerialOutput / HinksPix with
78+ non-throwing std::strtol so corrupt config or controller responses no longer crash.
79+ -bug (dkulp) State / Faces / Shockwave / VUMeter / Lyric / MatrixModel: added div-by-zero and
80+ map.at() guards on render-thread paths that could crash on edge-case inputs.
81+ -bug (dkulp) Faces / xlFontInfo / SpecialOptions / FileUtils / ip_utils / AudioManager: added
82+ missing locks around static / shared caches that were mutated concurrently from
83+ render workers and could corrupt or crash under heavy parallel rendering.
84+ -bug (dkulp) E1.31 / ArtNet / DDP SetManyChannels: bounds-check the starting channel before
85+ memcpy so an out-of-range channel can't overflow the packet buffer.
86+ -bug (dkulp) AlphaPix / WLED / HinksPix: free curl_slist headers (and the WLED CURL handle) on
87+ every exit path; firmware-upload filename copy now uses bounded strncpy.
88+ -bug (dkulp) AudioManager: widened sample-loop counters to long so pcm conversion no longer
89+ overflows on multi-hour audio; added missing int16 clamp on the NONVOCALS / VOCALS
90+ mono fallback.
91+ -bug (dkulp) Render engine: AggregatorRenderer::setPreviousFrameDone bounds-checks the frame
92+ index before indexing the per-frame counter array.
10293 -bug (derwin12) Fix state/face definitions copied in layout not rendering in sequence until restart (#6239)
10394 -bug (derwin12) Layout was sizing groups and model names too quickly (#6236)
10495 -bug (derwin12) Fix ON effect was resetting the intensity values (#6233)
@@ -120,7 +111,16 @@ XLIGHTS/NUTCRACKER RELEASE NOTES
120111 -bug (derwin12) Random Value Curve now holds the value properly (#4803)
121112 -bug (scott) Fix some values not being stored in (new) settings file (#6134)
122113 -bug (dkulp) Fix layout render glitches by sorting pixels back-to-front by camera-space Z (#6126)
123- -enh (charlie) Restore performance of House Preview Export to Video
114+ -bug (charlie) Restore performance of House Preview Export to Video
115+ -change (dkulp) Package Sequence: rewritten to walk SequenceMedia + every model/view-object's file
116+ references + Matrix face images so shaders, custom images, videos, meshes, and
117+ face/state assets are actually included. Show-relative paths preserved where possible;
118+ external files relocated under typed subdirs (Images/ Videos/ Shaders/ Glediators/
119+ Meshes/ Faces/) with folder-based disambiguation on basename collisions so packaged
120+ filenames can't mimic PicturesEffect's animation-sequence detection. No more _lost/
121+ dumping;
122+ -change (dkulp) Packaging preferences: "Exclude Presets" renamed to "Exclude Videos" — the old option
123+ stripped a rgbeffects element that no longer carries presets, so it was a no-op;
124124
1251252026.06 April 16, 2026
126126 -enh (dkulp) Media-compatibility warning on sequence load now offers "Convert Videos Now" —
0 commit comments