2026.09 Released
- Home
- Release Notes
- 2026.09 Released
- On
- By
- Categories: Release Notes
2026.09 Released
2026.09 May 9, 2026
-enh (dkulp) Controller delete now clears any model’s “!ControllerName:…” start channel
so dependent models become unassigned instead of pointing at a missing controller.
-enh (scott) Add experimental custom color picker (Preferences > Other) with HSV disc,
brightness slider, CSS named-color swatches, recent colors, and hex entry.
-enh (cybercop23) “Paste Effects” auto-inserts the needed layers when pasting multi-layer effects;
new “Copy Layers/SubModels to Models” pastes effects to multiple models at once.
-enh (dkulp) macOS crash report: capture every thread’s backtrace at the moment of the crash
into a new all-threads.txt file.
-enh (Neil) Custom Model Wiring header overlay now shows “Total Nodes: N” below Rotation.
-enh (dkulp) MediaCompatibility flags rawvideo .mov with non-8-aligned row stride so the
on-load convert dialog catches them and converts to ProRes 4444 before playback.
-enh (dkulp) AVFoundationVideoReader detects rawvideo .mov with non-8-aligned stride at
construction so desktop falls back to FFmpeg; iPad surfaces them as unreadable.
-bug (dkulp) Shader effect (Windows): return the GL context to the pool every frame instead
of pinning one per ShaderRenderCache.
-bug (dkulp) Fast-math hazard audit: fixed TempoDetector, ChordDetector, and mapbox earcut OBJ
triangulation; switched isnan/isinf/isfinite guards to _builtin* so
-ffinite-math-only no longer elides them.
-bug (dkulp) OpenGL (Windows): check the LoadGLFunctions return value before initializing
shaders, and check every required GL entry point inside ShaderProgram::Init.
-bug (dkulp) EffectsPanel::SetDefaultEffectValues: null-check effectManager and
effectPanelManager before iterating.
-bug (dkulp) LayoutPanel::FinalizeModel: null-check the dynamic_cast of
_newModel before calling ClearPolyLineCreate/GetNumHandles.
-bug (dkulp) LayoutPanel: null-check event.GetProperty() in OnPropertyGridChanging — fixes
crashes editing BkgSizeWidth/Height while a layout group is being switched.
-bug (dkulp) Layout preview: guard DisplayModelOnWindow/DisplayEffectOnWindow against null
Nodes/empty Coords — fixes top macOS crash 3D drag-placing new Tree/Sphere/Cube.
-bug (dkulp) Stem Separator: guard the CoreML inference call with @try/@catch and reject
outputs whose strides have fewer dimensions than the shape.
-bug (cybercop23) 3D shift+drag lasso was selecting models outside the box when zoomed in: the OBB
test now projects all 8 AABB corners (was 2) and depth-filters background models.
-bug (dkulp) Fix Apple Intelligence crash in FoundationModels.respond() on macOS 26 by
reordering rpath so /usr/lib/swift wins over the bundled libswift_Concurrency.
-bug (scott) HTDemucs ONNX model download was failing because the 12s curl timeout meant for
short API calls also killed the large-file download.
-bug (dkulp) Backup: per-file copy now uses std::filesystem::copy_file (logs path/errno on
failure), and requests write access so sandboxed builds get a writable bookmark.
-bug (Neil) macOS: opening a .xsqz package while a sequence is loaded now spawns a new xLights
process via open -n instead of replacing the current show folder in-place.
-bug (cjd) Audio not playing on first Play after opening a sequence — AudioManager::Seek()
now lazy-adds the audio stream the same way Play() does.
-bug (dkulp) Generate AI Lyrics now feeds the recogniser the currently-selected waveform (RAW,
HTDemucs vocals stem, band-passed, etc.) instead of always sending the mix.
-bug (dkulp) Video transcode: when a chosen encoder (e.g. libx265’s 16×16 minimum) refuses the
source dimensions, fall through to the next candidate. Fixes very small videos.
-bug (dkulp) Video transcode + Export Model Video (.mov): AVFoundation rawvideo decoder needs
row stride divisible by 8, so non-8-aligned widths now route through ProRes 4444.
