Releases: Bukutsu/glacier-eq
Releases · Bukutsu/glacier-eq
Release list
Glacier EQ v0.4.2
Changelog
0.4.2 - 2026-07-15
Added
- Added the offline CLI and shared device architecture.
- Added Linux polkit/pkexec fallback for USB permissions.
- Added CLI documentation to the project wiki.
Fixed
- Made the Profile Library list scroll when it exceeds the component height.
- Allowed
@and other common symbols in profile names. - Fixed automatic file naming after AutoEQ imports.
- Applied learning-rate decay during AutoEQ optimization.
Changed
- Refined the mobile UI and Android theme defaults.
- Simplified device and platform integration.
- Updated the project screenshot and release tooling.
Glacier EQ v0.4.1
v0.4.1 (Hotfix)
This release addresses direct hardware communication failures with Savitech/Walkplay-based devices (e.g., EPZ TP35 Pro).
Fixes & Improvements
- Savitech/Walkplay Protocol Adjustments:
- Embedded Preamp: Restored embedding global gain (preamp) as an unsigned byte in each filter write packet body (byte 34). Without this, the device did not properly latch preamp alongside individual band modifications on some chip versions.
- Payload Structure Sync: Dropped the incorrect trailing
FILTER_SLOTand extraENDpadding bytes from filter write and flash commit packets. Both packets now align exactly with the 36-byte Savitech wire format specification.
- Tauri Native Timing Sync:
- Updated
READ_INTER_FILTER_MS(10ms → 35ms) andREAD_POST_FILTER_MS(40ms → 50ms) in the Tauri native path. This matches the WASM path and prevents incoming HID packet buffers from overflowing on slower DAC microcontrollers.
- Updated
- Retry Mechanism Optimization:
- Fixed a bug where
is_default_statetriggered retries endlessly during device pulls. The fallback comparison was looking for uninitialized frequencies of100(which is never produced by the device or Glacier's default fallbacks). Now correctly usesall_zero_gainto verify when a pull returned empty values.
- Fixed a bug where
Version Bumps
- glacier-eq: 0.4.0 → 0.4.1
Glacier EQ v0.4.0
v0.4.0
Highlights
- Revamped desktop EQ band editor with full-width rows and proper column layout
- Graph preview overlay now works on desktop when editing scrolled-out filter bands
- Unified modal system with a shared
Modalbase component - In-app styled confirm dialogs replacing native browser dialogs
- Drag-and-drop profile import, unsaved-changes guard, auto-refresh after save/delete
- Default profile always appears first in the profile list
- Significant dead code and over-engineering cleanup across Rust and TypeScript
UI & Layout
- Full-width EQ band editor rows on desktop; Q control no longer misaligned
- Band editor rows no longer overflow the viewport on small windows
- Graph preview overlay on desktop when a filter band is scrolled out of view
- Unified side-by-side tabs layout and profile card flex behaviour on narrow desktop viewports
- Unified mobile breakpoint to 850px across JS and CSS to eliminate intermediate-viewport glitches
- Improved responsive layout for small and intermediate desktop windows
- Unified tab transitions and motion across the app
- Custom scrollbar with restored mouse-wheel scrolling on desktop
Features
- Unified modal system:
Modalbase component with aModalPropscontract - In-app styled confirm dialog via React context (sharp corners matching app theme)
- Unsaved-changes guard before navigating away
- Drag-and-drop
.jsonimport on the Profiles page - Auto-refresh profile list after save or delete
- Default EQ profile pinned to the top of the profile list
Fixes
- Fixed Default profile disappearing after save/delete
- Fixed measurement import: replaced broken asset-protocol fetch with
read_text_filecommand - Fixed AddTraceModal: file imports now handled directly; modal closes on success
- Fixed mouse scrolling on desktop with active custom scrollbar
Code Health
- Removed dead snap functions; inlined
walkplay_packet - Inlined
CheckboxandSearchBarcomponents; removed one-off wrappers - Deleted unused constants, dead code, and the stale
wasm_pkgcopy - Inlined
lock_mutex; dedupedDEFAULT_FREQS_10_BAND - Unexported internal Rust and TypeScript symbols
CI & Build
- Cross-platform
wasm-packbuild via Node script (fixes Windows runners) - Cleared
RUSTFLAGSwhen compiling to WASM to prevent host CPU feature mismatches - PKGBUILD now builds from the local checkout;
rust-wasmadded tomakedepends - Cleaned up PKGBUILD build process
Version bumps
- glacier-eq: 0.3.0 → 0.4.0
Glacier EQ v0.3.0
v0.3.0
Highlights
- Responsive mobile layout with floating graph preview overlay on slider drag
- Cross-platform file picker using Tauri dialog (with web fallback)
- Reusable Checkbox and SearchBar components with fuzzy search
- Improved Add Trace modal: removed redundant Target Curves section, inline download success indicator
- Minimal GTK startup flicker on Linux
- Auto-pull EQ state after device resets
- Optimized Android CI (parallel Gradle, no SDK cache, fixed configuration-cache)
UI & Layout
- Major responsive layout rework for mobile and narrow desktop screens
- Sidebar navigation layout following GNOME HIG
- Adaptive NumberInput with CSS Container Queries and touch support
- Collapsible EQ graph on mobile with floating preview overlay
- Scroll capture improvements for constrained windows
Features
- AutoEQ: restricted shelf filter frequency limits for better midrange precision
- Diagnostics panel as a standalone modal
- Unified online measurement database search and download (merged into Curves tab)
- Hardware DSP controls accessible on mobile tab bar
- Native Tauri clipboard integration with explicit read/write capabilities
- Device state auto-pull after resets (emit device-pull event)
Performance
- File logging moved to background thread pool (spawn_blocking)
- Eliminated heap allocations in AutoEQ hot loop (stack arrays)
- Simplified parameter indexing with slice splitting
Fixes
- Fixed window state on scaled displays and Android release builds
- Fixed mouse wheel scrolling in constrained layouts
- Fixed GTK startup window sizing flicker on Linux
- Cleaned up redundant startup window logic
CI & Build
- Optimized Android CI: parallel Gradle, Gradle caching, no SDK cache
- Fixed Gradle configuration cache incompatibility in buildSrc
- Pinned NDK 26.1 for reproducible Android builds
- Removed flaky android-actions/setup-android in favor of runner's preinstalled SDK
- Desktop CI streamlined: removed redundant frontend job
- Release workflow creates draft releases for pre-publish verification
- Community docs: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md
- Updated README with core feature screenshots and badges
Version bumps
- glacier-eq: 0.2.1 → 0.3.0
- tauri-conf, Cargo.toml, package.json bumped accordingly
Glacier EQ v0.2.1
Changelog since v0.2.0
Added
- Hardware DSP controls now show on mobile.
- Hardware DSP has its own tab section below the main tabs on mobile.
- Online measurement database search and download were moved into the Curves workflow.
Fixed
- Mouse wheel scrolling now works in constrained layouts, including the device selector and left pane.
- Window size and position restore correctly, including on scaled displays.
- Android release builds no longer try to compile desktop-only window-state code.
- Number inputs no longer clip on small windows; mobile steppers are hidden where needed.
- Tab panel content scrolls independently when space is tight.
Improved
- Default window size was increased to
1100x760. - Diagnostics file logging now runs on a background thread.
- AutoEQ got hot-path and parameter-handling cleanup for better performance and precision.
- Theme caching and target color resolution were simplified.
Full comparison: v0.2.0...v0.2.1
Glacier EQ v0.2.0
Automated Glacier EQ build. See assets below for installers.
Changelog since v0.1.9
UI Redesign & Mobile Optimization
- Separated mobile layout, aligning app bar, card styling, and touch targets with Android HIG.
- Stacked Measurements and Targets vertically in Curves tab (panel too narrow for side-by-side).
- Stacked mobile profiles card vertically instead of side-by-side grid, enlarged mobile profiles list row touch targets to 48px, made save button icon-only on mobile to prevent truncation.
- Displayed graph card on Profiles and Settings tabs to utilize vertical screen space.
- Resolved desktop UI issues: centered legend at top, hid mobile toolbar on desktop.
- Enlarged mobile theme dropdown width, improved settings menu touch targets and layout for mobile/Android.
- Replaced hardcoded border-radius with design system radius tokens to preserve sharp border aesthetic.
Curves & Import Unification (Measurements and Target Curves)
- Merged Targets and Measurement Traces on desktop layout, unifying curves selection UI.
- Merged Targets and Measurement Traces into a unified card on mobile Tuning tab.
- Unified styling for Measurement Traces and Target Curves list selectors.
- Unified curves import triggers and moved online database cache/search to Settings tab.
- Removed Paste Trace button (file-based import only).
- Moved Traces & Targets into desktop ToolsPanel as a Curves tab.
- Shortened CurvesTab button labels, clamped legend to graph width.
- Audited and improved graph legend, added mobile collapsible toggle dropdown.
AutoEQ Improvements
- Automatically resolved source and target selection from visible graph traces, simplifying the UI.
- Formatted auto profile names as
Model @ Targetwith fallbacks to prevent empty strings on custom entries.
Profiles Management
- Merged profile search and name into a single smart input with
New/Overwritebadge. - Profiling selection clears search so the full list stays visible, badge only appears when typing a custom name.
UX, Platform, & Scrolling Fixes
- Fixed tools panel desktop scrolling and optimized layout space usage.
- Hid profile folder shortcut on Android.
Dependencies & CI/CD
- Switched to GitHub Actions Pages deployment, and retried flaky Pages deployments.
- Applied lean optimizations and eliminated redundant dependencies.
- Upgraded dependencies:
tauri(cargo group),npm-dependenciesgroup, andtauri-apps/tauri-actionto v1.
Full Changelog: v0.1.9...v0.2.0
Glacier EQ v0.1.9
Automated Glacier EQ build. See assets below for installers.
Full Changelog: v0.1.8...v0.1.9
Glacier EQ v0.1.8
Automated Glacier EQ build. See assets below for installers.
Full Changelog: v0.1.7...v0.1.8
Glacier EQ v0.1.7
Changelog since v0.1.6
Web build
- Added browser/WebHID parity work, including WebHID + WebAssembly support, GitHub Pages deployment, and SEO/repository metadata.
- Fixed Web AutoEQ, diagnostics, firmware reads, offline caching, and cached-page recovery.
- Added web recovery for device disconnects by emitting the same reconnect event path used by desktop.
- Enabled Walkplay hardware controls on web.
Device and EQ behavior
- Added extensible EQ protocol support and RAM apply for Aura protocols.
- Added firmware version display, EQ session status, and reset-to-last-pushed slider behavior.
- Made desktop filter bands collapsible.
Docs and Linux support
- Documented Linux udev/polkit behavior and added friendlier connection guidance.
- Credited the Audiocular Aura protocol reference.
Maintenance
- Simplified over-engineered code paths, protocol helpers, utility packet plumbing, HID plugin comments, and release/build plumbing.
- Added pre-push CI checks.
- Fixed Android release initialization so the v0.1.7 Android APK builds and uploads correctly.
Full diff: v0.1.6...v0.1.7
Android APK hotfix
- Replaced the Android APK asset with a locally rebuilt arm64 APK that is v2-signed and includes the Glacier EQ launcher icon resources.
- Pushed CI fixes so future Android release APKs copy launcher icons and sign release builds even without release keystore secrets.
Glacier EQ v0.1.6
Automated Glacier EQ build. See assets below for installers.
What's Changed
- UI Redesign & Layout Tweaks:
- Redesigned mobile filter editor and restored tall, narrow mobile layouts.
- Switched filter bands to a single column layout below 1592px to prevent clipping.
- Simplified dynamic filter editing and aligned the measurement traces panel.
- Steppers, Sliders & Inputs:
- Unified custom number input stepper layouts, borders, and backgrounds globally.
- Designed steppers as minimal, transparent button layouts with subtle dividers.
- Unified slider rendering and added Shift/Page keys support for keyboard step adjustment.
- Fixed stuck first filter frequency slider keyboard adjustment by increasing the step size.
- Improved preamp stepper input layout, sizes, and borders.
- Settings & Presets:
- Moved the "Snap to ISO frequencies" setting from the Preset tab to the Settings tab, with full state persistence.
- Styled collapsible sections (Reset/Delete, Import/Export) with a rotating disclosure triangle.
- Device Disconnection & Auto-Reconnection:
- Gracefully handle sudden device disconnections.
- Intercept device disconnection errors in UI actions to show a clean status.
- Added a background auto-reconnection flow with a fullscreen reconnecting overlay.
- Gated volatile RAM apply check by device capability.
- Diagnostics & Error Handling:
- Unified diagnostic, notifications, and status bar reporting.
- Auto-log all notifications and global uncaught exceptions to the diagnostics board.
- Enabled copying diagnostics panel logs filtered by visible type or search query with copy success feedback.
- Internal Cleanup & Optimization:
- Cleaned up redundant API calls, dead warning ternaries, and duplicate CSS rules.
Full Changelog: v0.1.5...v0.1.6