hifiberry-dsp (1.3.13) stable; urgency=medium

  * sigmatcpserver: --disable-tcp no longer leaves port 8086 listening. The
    SigmaTCP socket was created unconditionally in SigmaTCPServerMain.__init__
    while serve_forever() was only called when TCP was enabled, so with
    --disable-tcp (what the shipped unit uses) the port bound but never
    accepted: clients completed the TCP handshake, queued in the accept backlog
    and hung until they timed out, instead of getting a connection refused.

 -- HiFiBerry <support@hifiberry.com>  Fri, 07 Aug 2026 16:00:00 +0200

hifiberry-dsp (1.3.12) stable; urgency=medium

  * Ship an auth-gateway classification manifest (etc/hifiberry/auth.d/dsptoolkit.json).
    The DSP toolkit API had no manifest, so every call defaulted to "risky" and
    the DSP pages 401'd once the auth gateway is active. Reads (hardware detect,
    metadata, memory/register reads, cache/profile/checksum/program info, stored
    filters) and the pure-math frequency-response calc are "ok"; all DSP writes
    (memory/register write, biquad, deploy profile, store/delete filters, cache
    clear) stay risky.

 -- HiFiBerry <support@hifiberry.com>  Fri, 17 Jul 2026 16:00:00 +0000

hifiberry-dsp (1.3.11) stable; urgency=medium

  * systemd: launch sigmatcpserver with --store --restore so DSP data
    memory (including the volume register) is dumped on graceful stop
    and re-applied on next start. Audio level set via the DSPVolume
    ALSA control now survives reboots instead of resetting to the
    firmware's quiet default (~-39 dB on Beocreate).
  * systemd: KillSignal=SIGINT + TimeoutStopSec=15 so the --store path
    (which only runs from the KeyboardInterrupt handler) actually
    executes during `systemctl stop` / reboot.

 -- HiFiBerry <support@hifiberry.com>  Mon, 11 May 2026 14:00:00 +0000

hifiberry-dsp (1.3.10) stable; urgency=medium

  * sigmatcpserver: compare each XML checksum field against the matching
    algorithm — "checksum" (signature MD5) vs DSP signature-mode MD5,
    "checksum_sha1" (length SHA-1) vs DSP length-mode SHA-1. Either
    match is sufficient. Pairs with hifiberry-dspprofiles 1.1.1 which
    now ships both metadata entries. Profiles that still carry only the
    old "checksum" entry continue to work via the MD5 path.

 -- HiFiBerry <support@hifiberry.com>  Mon, 11 May 2026 13:00:00 +0000

hifiberry-dsp (1.3.9) stable; urgency=medium

  * sigmatcpserver: fix profile-vs-DSP checksum comparison. XML profiles
    store signature-based MD5/SHA-1 under <metadata type="checksum">, but
    the server was reading the DSP's length-based checksums and comparing
    against them. Two different algorithms over the same firmware never
    match, so every healthy boot was logging "checksums do not match,
    aborting" and refusing to wire alsasync to the volume control
    register. Result: the DSPVolume ALSA control had no effect on the
    actual DSP volume register, which boots at a near-mute default
    value, and speakers stayed silent. Fix is to compare signature ↔
    signature (with length as a fallback only). Length-mode is still
    used for filter-store indexing where the algorithm difference is
    intentional.

 -- HiFiBerry <support@hifiberry.com>  Mon, 11 May 2026 12:00:00 +0000

hifiberry-dsp (1.3.8) stable; urgency=medium

  * Fix critical bug: Biquad.from_parameters() replaced with correct Biquad() constructor
  * Fix duplicate _group_filters_by_bank() method in settings_store.py
  * Fix wrong import in test_filter_store.py (FilterStore → SettingsStore)
  * Fix @classmethod methods using self instead of cls in biquad.py
  * Change debug-level messages from logging.info to logging.debug in adau145x.py
  * Replace bare except clauses with specific exception types across 11 files

 -- HiFiBerry <support@hifiberry.com>  Mon, 02 Mar 2026 12:00:00 +0000

hifiberry-dsp (1.3.7) stable; urgency=medium

  * Add nginx include file for DSP Toolkit API proxy (/etc/nginx/hifiberry-api.d/)

 -- HiFiBerry <support@hifiberry.com>  Sat, 28 Feb 2026 12:00:00 +0000

hifiberry-dsp (1.3.6) stable; urgency=medium

  * Fixed ALSA volume sync to ignore ALSA changes when no DSP volume register
  * ALSA volume automatically resets to 100% when DSP volume register unavailable
  * Added --alsa option to sigmatcpserver systemd service
  * Enables automatic synchronization between DSP and ALSA volume controls
  * Simplified Debian packaging: removed postinst and prerm scripts
  * Streamlined debian/rules with simplified build configuration
  * Added postrm script for proper cleanup on package removal
  * Organized package documentation with .docs, .examples, and .manpages files
  * Simplified sigmatcpserver systemd service configuration
  * Code cleanup in api/filters.py, api/restapi.py, measurement/data.py, setup.py
  * Removed obsolete requirements.txt and dspparamreader documentation images
  
 -- HiFiBerry <info@hifiberry.com>  Fri, 06 Feb 2026 15:35:00 +0000

hifiberry-dsp (1.3.3) stable; urgency=medium

  * Added /version endpoint to REST API for toolkit version information

 -- HiFiBerry <info@hifiberry.com>  Tue, 02 Oct 2025 16:00:00 +0000

hifiberry-dsp (1.3.2) stable; urgency=medium

  * Enhanced checksum caching system with program length validation
  * Added START_PULSE_REGISTER constant for DSP sample rate detection
  * Refactored checksum functions into separate get_current_program_checksum() 
    and get_current_program_checksum_sha1()
  * Removed legacy cache fields for cleaner, more maintainable code
  * Improved cache invalidation based on DSP program length changes
  * Enhanced /cache endpoint with detailed checksum and validation status
  * Fixed checksum cache synchronization between REST API and SigmaTCP server
  * Added new dsp-install-profile command-line tool using REST API
  * Added new dsp-program-info command-line tool using REST API
  * Added new dsp-get-profile command-line tool using REST API
  * Added comprehensive man pages for all new command-line tools
  * Enhanced /dspprofile endpoint to accept raw XML content in addition to JSON
  * Improved XML profile validation logic for better reliability

 -- HiFiBerry <info@hifiberry.com>  Tue, 30 Sep 2025 16:00:00 +0000

hifiberry-dsp (1.3.1) stable; urgency=medium

  * Added XML profile support for checksum_sha1 attribute
  * Enhanced profile matching to prioritize SHA-1 over MD5 checksums
  * Updated SigmaTCP server to validate both MD5 and SHA-1 checksums
  * Added comprehensive /program-info API endpoint
  * Added deprecation notices to dsptoolkit command-line utility
  * Updated documentation to guide users to REST API
  * Fixed Debian packaging issues (aliased locations, removed unused binaries)
  * Added AI agent configuration to maintain code style consistency

 -- HiFiBerry <info@hifiberry.com>  Tue, 30 Sep 2025 15:00:00 +0000

hifiberry-dsp (1.3) stable; urgency=medium

  * Enhanced checksum API with dual MD5/SHA-1 algorithm support
  * Added intelligent checksum mode selection (signature-based vs length-based)
  * Implemented efficient checksum caching system to minimize DSP memory access
  * Added program memory subset functionality for optimized checksum calculation
  * Enhanced program length API with max parameter for maximum length retrieval
  * Enhanced program memory API with multiple end detection modes 
    (signature/full/len)
  * Added checksum priority system: SHA-1 (length-based) over MD5 
    (signature-based)
  * Added comprehensive checksum documentation (doc/checksum.md)
  * Improved performance with multi-level caching for memory and checksums
  * Enhanced REST API with detailed checksum response including mode and 
    length info

 -- HiFiBerry <info@hifiberry.com>  Mon, 29 Sep 2025 15:00:00 +0000

hifiberry-dsp (1.2.1) stable; urgency=medium

  * Fix logging bug
  * Added REST API endpoint to retrieve DSP program length (/program-length)
  * Added REST API endpoint to retrieve DSP program memory (/program-memory)
  * Enhanced program memory API with multiple output formats (hex, raw, base64)
  * Updated REST API documentation with new program memory endpoints

 -- HiFiBerry <info@hifiberry.com>  Sun, 29 Sep 2025 12:00:00 +0000

hifiberry-dsp (1.2) stable; urgency=medium

  * Major architecture refactoring: Filter Store to Settings Store
  * Renamed FilterStore class to SettingsStore for generic settings support
  * Renamed filters.json to dspsettings.json for consistent naming
  * Added dedicated memory settings storage with store parameter in memory API
  * Enhanced JSON structure to support both filters and memory settings
  * Added automatic migration from old filter-only format to new structure
  * Enhanced sigmatcp server with memory settings autoloading support
  * Fixed memory API address parsing bug (hex vs decimal inconsistency)
  * Added concurrent write protection with file locking for settings store
  * Added checksum normalization to prevent duplicate profile entries
  * Enhanced REST API consistency across memory and register endpoints
  * Added comprehensive backward compatibility for existing filter APIs
  * Improved error handling and validation throughout settings system
  * Enhanced debug logging with memory write tracing capabilities
  * Added comprehensive documentation for new settings store architecture

 -- HiFiBerry <info@hifiberry.com>  Thu, 08 Aug 2025 12:00:00 +0000

hifiberry-dsp (1.1) stable; urgency=medium

  * Added comprehensive Filter Store API with JSON persistence
  * Added filter storage organized by DSP profile checksum
  * Added automatic filter loading and persistence via REST API
  * Added sigmatcp server autoloading of stored filters on DSP updates
  * Added REST API endpoints for filter management (/filters)
  * Added DSP program checksum endpoint (/checksum)
  * Added cache management and status endpoint (/cache)
  * Added bulk profile metadata endpoint (/profiles/metadata)
  * Added checksum caching for improved REST API performance
  * Added debug mode with --debug flag for memory write logging
  * Added systemd configuration support via /etc/default/sigmatcpserver
  * Added Bypass/PassThrough filter type for signal pass-through
  * Added comprehensive debug logging for all memory writes
  * Enhanced REST API documentation with detailed examples
  * Fixed memory write debug logging bug in sigmatcp server
  * Enhanced filter store with offset-aware addressing
  * Enhanced biquad filter support with coefficient calculation
  * Moved filter storage to /var/lib/hifiberry/filters.json
  * Improved error handling and validation throughout system

 -- HiFiBerry <info@hifiberry.com>  Wed, 07 Aug 2025 14:00:00 +0000

hifiberry-dsp (1.0.3) stable; urgency=low

  * Changed distribution from unstable to stable
  * Improved package stability and compatibility

 -- HiFiBerry <info@hifiberry.com>  Mon, 30 Jun 2025 15:30:00 +0000

hifiberry-dsp (1.0.2) stable; urgency=low

  * Package renamed from python3-hifiberry-dsp to hifiberry-dsp

 -- HiFiBerry <info@hifiberry.com>  Mon, 30 Jun 2025 12:00:00 +0000

hifiberry-dsp (1.0.1) stable; urgency=low

  * Changed packaging to debian sbuild

 -- HiFiBerry <info@hifiberry.com>  Thu, 26 Jun 2025 12:00:00 +0000

hifiberry-dsp (1.0) stable; urgency=low

  * Initial Debian package release
  * Collection of tools to configure HiFiBerry DSP boards
  * Program DSP boards from SigmaStudio
  * Support for SigmaTCP server
  * ALSA volume control integration
  * REW filter support
  * DSP profile management
  * EEPROM programming capabilities
  * Zeroconf network discovery
  * Web interface support
  * Command line utilities for DSP configuration

 -- HiFiBerry <info@hifiberry.com>  Thu, 24 Jun 2025 12:00:00 +0000
