Releases: meduzapat/LEDSpicer
Release list
Release 0.7.7
Release candidate 0.7.7 (master ← development).
Highlights
- Daemon now starts independently of the user session and audio availability — audio connects lazily, so the service is up as soon as the network is ready (#125).
- PulseAudio/ALSA hardening: ALSA reopens a lost capture device automatically; PulseAudio retries in the background instead of aborting startup; the daemon derives the per-user PulseAudio socket itself (#125).
- Rotator fixes: argument-parsing crash, TOS serial restrictor, hardened
colorFormatparsing (RGB/rgb), and duplicate player/joystick request warnings (#123). - Automated COPR/AUR release publishing and CMake/build cleanups.
See CHANGELOG.md for the full 0.7.7 list.
Release 0.7.6
LEDSpicer v0.7.6 - Release Notes
Release Date
June 14, 2026
Overview
This release focuses on critical stability improvements and bug fixes for crafted profile handling and memory management.
🐛 Bug Fixes
Crafted Profile System
Fixed use-after-free crash when loading the same crafted profile twice
Improved profile caching - Crafted profiles are now properly cached by game name instead of being rebuilt on every request
Fixed profile stack history - FinishLastProfile now correctly steps back one profile at a time through the history stack
Flag Handling
Corrected FORCE_RELOAD flag - Profile reload now properly ignores cache and rebuilds in place
Corrected REPLACE flag - Profile replacement logic now works correctly on the craft/load path
📝 Changes
Configuration Updates
Configuration values now use proper boolean capitalization (True/False instead of true/false)
Enhanced configuration defaults in ledspicer.conf
Code Quality
Refactored profile management to eliminate redundant cache operations
Improved memory management with proper reference counting for replaced profiles
Enhanced logging for better debugging of profile lifecycle
Documentation & Branding
Updated README with improved project description and branding
Enhanced feature list and typical use cases documentation
Updated copyright year to 2026
CI/CD
Updated GitHub Actions checkout action from v4 to v6
Package Updates
Updated version across all package managers (Debian, RPM, Arch)
🔧 Technical Details
Changed default platform parameter handling in craftProfile()
Introduced replaceProfileReferences() for cleaner memory management
Optimized cache key handling for platform templates vs. crafted profiles
Release 0.7.4.1
0.7.4.1 fixes Issues with Frame actors and others
* Fixes the issue with Frame actors
* Fixes several bugs, related and not
* Improves code quality
* unit tests updated
* added boxes
Release 0.7.4
Release 0.7.4
Added
restartTimeparameter for actors: delay before restarting afterendTimeexpires- Time is now frame-based, syncing multiple actors to the same point in time
Changed
- Time and duration values now accept decimals (e.g.
1.5seconds) - Repeat limit increased from 255 to 65535
- Improved actor runtime validation
checkRepeats()infinite repeat behaviour corrected
Removed
cyclesparameter from FrameActor, replaced byendTime
Fixed
- Serpentine animation debug log showed wrong position
- Element reset loop applied incorrectly in some cases
Release 0.7.3
This release focuses on improving project isolation, robustness, and reliability, while fixing long-standing multi-device issues.
Highlights
- Introduces support for separate project directories, enabling cleaner management of multiple setups.
- Fixes an issue where only one Servostik board worked in multi-board configurations.
- Improves PulseAudio handling with non-fatal reconnect logic for more reliable audio-driven animations.
- Adds and stabilizes unit test coverage, with full CI validation.
Notable Changes
- New
-j / --projectand-J / --projects-dircommand-line options. - Centralized and consistent path handling across the codebase.
- Improved systemd service behavior with graceful shutdown and optional audio integration.
- Correct home directory resolution when running with dropped privileges.
Compatibility
- No configuration changes are required for existing single-project setups.
- Multi-project users may benefit from migrating to the new project directory structure.
Quality
- All unit tests pass (27/27).
- CI builds validate both test-only and full builds.
As always, feedback and bug reports are welcome.
Release 0.7.2
What's Changed
- Multi-distribution packaging infrastructure for Arch (AUR), Fedora (COPR), and Debian/Ubuntu (PPA).
- Split packages into base daemon and separate plugins per device.
- CHANGELOG.md following Keep a Changelog format.
- generate-changelogs.sh script for single source of truth from CMakeLists.txt.
- install.sh interactive installer.
Release 0.7.0
Release 0.7.0 — Major Refactor & Modernization
This release is a significant internal update focused on code quality, reliability, and long-term maintainability. While user-facing behavior remains largely familiar, much of the project has been modernized under the hood.
Highlights
-
Build system modernization
- Migrated from Autotools to CMake (3.10+)
- Simplified build configuration and dependency handling
- Unit tests integrated into the build process
-
Improved test coverage
- Added a comprehensive unit test suite covering core logic, animations, devices, transitions, and utilities
- Enhanced DRY_RUN mode to allow hardware-free testing
- Result: a more stable and predictable codebase
-
Architecture cleanup
- Animations and inputs are now compiled into the main binary
- Only devices remain as plugins
- Reduced runtime complexity and dependencies
-
Transitions system rewrite
- Legacy begin/end transitions removed
- New, more flexible transition engine with cleaner logic and better profile switching
-
Animations and rendering
- Improved animation logic and frame calculations
- StepActor improvements and general optimizations
-
Audio improvements
- ALSA audio fixes
- PulseAudio backend migrated to PipeWire
- General cleanup and reliability improvements in audio plugins
-
Installation and tooling
- Added a new installation script for easier and more consistent setup
-
Core modernization
- Migrated codebase from C++11 to C++17
- Improved serial communication, error handling, and logging
- Extensive refactoring and removal of redundant code
-
Documentation & project cleanup
- Removed outdated examples and redundant files
- Documentation reorganized into a separate project
Notes
- Data files now use format version 1.1
This release lays the groundwork for future development by making the project cleaner, better tested, and easier to evolve.
Release 0.6.4
Main changes
- Added Multiple RGB LEDs, so one Element can control two or more RGB LEDs.
- Improved Rotators and Restrictors code, with several code fixes.
- Added extra Devices for ADA protocol.
- Moved USB ID detection code (originally implemented by pacdrive) to the USB class so can be used to other hardware.
- Improved Servostik code, but still need test and maybe development.
Release 0.6.0
What's Changed
- Update README.md by @meduzapat in #22
- 26: Add brightness to elements by @meduzapat in #29
- 27: Update Dates by @meduzapat in #30
- 28: Add more details to the dump by @meduzapat in #31
- 32: Research and fix Adaligh protocol issues. by @meduzapat in #33
- 35: Improve serial autodetect so it find Ada hardware by @meduzapat in #36
- Task 35 improve serial autodet by @meduzapat in #39
- Multiple bugs detected #40 by @meduzapat in #41
- Nightly commit by @meduzapat in #42
- Daily commit by @meduzapat in #43
- 45: Input Plugins trigger must be unique to the input source by @meduzapat in #46
- Task 45 input plugins trigger by @meduzapat in #47
- Adding README.md to sources by @meduzapat in #51
- 54: Allow sending parameters from emitter to ledspicer by @meduzapat in #55
- small changes by @meduzapat in #56
- Patch by @meduzapat in #52
Full Changelog: 0.5.9...0.6.0