Skip to content

Releases: meduzapat/LEDSpicer

Release 0.7.7

Choose a tag to compare

@meduzapat meduzapat released this 30 Jun 01:24
5c59d19

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 colorFormat parsing (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

Choose a tag to compare

@meduzapat meduzapat released this 14 Jun 05:11
75dcf2f

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

Choose a tag to compare

@meduzapat meduzapat released this 06 May 02:13
6ae9c17

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

Choose a tag to compare

@meduzapat meduzapat released this 03 May 16:36
5c8b01e

Release 0.7.4

Added

  • restartTime parameter for actors: delay before restarting after endTime expires
  • 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.5 seconds)
  • Repeat limit increased from 255 to 65535
  • Improved actor runtime validation
  • checkRepeats() infinite repeat behaviour corrected

Removed

  • cycles parameter from FrameActor, replaced by endTime

Fixed

  • Serpentine animation debug log showed wrong position
  • Element reset loop applied incorrectly in some cases

Release 0.7.3

Choose a tag to compare

@meduzapat meduzapat released this 30 Jan 21:48
9658d1a

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 / --project and -J / --projects-dir command-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

Choose a tag to compare

@meduzapat meduzapat released this 24 Jan 06:12

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

Choose a tag to compare

@meduzapat meduzapat released this 15 Jan 14:05
957d80e

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

Choose a tag to compare

@meduzapat meduzapat released this 13 Jul 17:33
08c8aae

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

Choose a tag to compare

@meduzapat meduzapat released this 09 Mar 13:33
04664c8

What's Changed

Full Changelog: 0.5.9...0.6.0