This release adds 2 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summaryUpdates CPU, linear, and library across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Resonance adds UI elements that react to live audio (accent wash, beat pulse, glow). Resonance adds UI elements that react to live audio (accent wash, beat pulse, glow). Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
Artist and album names in Library, History, and Playlist/queue rows are now clickable links to their respective views. Artist and album names in Library, History, and Playlist/queue rows are now clickable links to their respective views. Source: llm_adapter@2026-05-30 Confidence: high |
— |
| Feature | Low |
New Settings rows: Performance (Auto / High / Lite) and Resonance (Auto / On / Off). New Settings rows: Performance (Auto / High / Lite) and Resonance (Auto / On / Off). Source: granite4.1:30b@2026-05-30-audit Confidence: low |
— |
| Performance | Medium |
Hardware acceleration now defaults on; software fallback only for opt‑out or crash recovery. Hardware acceleration now defaults on; software fallback only for opt‑out or crash recovery. Source: llm_adapter@2026-05-30 Confidence: low |
— |
| Performance | Low |
Resonance self‑throttles based on device capability and frame budget, reducing to a single accent pulse or static theme on weak hardware; respects prefers-reduced-motion. Resonance self‑throttles based on device capability and frame budget, reducing to a single accent pulse or static theme on weak hardware; respects prefers-reduced-motion. Source: granite4.1:30b@2026-05-30-audit Confidence: low |
— |
| Performance | Low |
Folders view navigation is memoized; folder tree recomputation occurs only after library rescans, not on each click. Folders view navigation is memoized; folder tree recomputation occurs only after library rescans, not on each click. Source: granite4.1:30b@2026-05-30-audit Confidence: low |
— |
| Bugfix | Medium |
Folders view navigation is memoized and no longer recomputes the entire folder tree on each click for large libraries. Folders view navigation is memoized and no longer recomputes the entire folder tree on each click for large libraries. Source: llm_adapter@2026-05-30 Confidence: low |
— |
| Bugfix | Medium |
Volume slider applies a perceptual cubic taper for smoother loudness changes across the full range. Volume slider applies a perceptual cubic taper for smoother loudness changes across the full range. Source: llm_adapter@2026-05-30 Confidence: low |
— |
| Bugfix | Medium |
Rating a track no longer alters the displayed album rating; explicit album ratings are shown separately from track‑average hints. Rating a track no longer alters the displayed album rating; explicit album ratings are shown separately from track‑average hints. Source: llm_adapter@2026-05-30 Confidence: low |
— |
Full changelog
[1.6.1] - 2026-05-29
A performance + feel release layered on 1.6.0. The headline is Resonance — the whole UI reacts to the live audio — but the biggest practical win is that hardware acceleration is finally on by default, which alone makes the entire app feel dramatically lighter.
Fixed — hardware acceleration was disabled by default (the single biggest perf bug)
Since the project's first commit, electron/main.ts required an opt-in env var (NEWAMP_ENABLE_HARDWARE_ACCELERATION=1) to use the GPU; the default path called app.disableHardwareAcceleration() plus disable-gpu/disable-gpu-compositing/disable-gpu-rasterization. This was a holdover from the GPU-less cloud sandbox the app was built in. On real machines it forced the WebGL visualizer onto SwiftShader (CPU) and CPU-composited the entire UI — the dominant cause of sluggishness.
Hardware acceleration now defaults on. Software rendering is used only for smoke tests, an explicit NEWAMP_DISABLE_HARDWARE_ACCELERATION=1 opt-out, or automatic crash recovery: a GPU-process crash drops a sentinel file under userData so the next launch falls back to software once, then retries — a one-off crash self-heals, a persistently broken driver stays on software. Chromium's own GPU blocklist still handles known-bad drivers.
Added — Resonance: the whole UI reacts to the live audio
Every other player themes from static cover art or confines audio-reactivity to a dedicated visualizer window. NewAmp now makes the application chrome itself respond to what's playing: a live album-art accent wash behind the content, a beat pulse on the transport, and energy-driven glow — all driven by one requestAnimationFrame loop writing a handful of :root CSS custom properties (--amp-energy, --amp-beat, --amp-bright), consumed by compositor-only transform/opacity rules. No per-frame React.
It self-throttles: an honest adaptive-quality tier (a static device-capability probe plus a tiny live rAF-frame-budget monitor — not the abandoned "pressure" machinery) drops Resonance to a single accent pulse, then to a clean static theme, on weak hardware — and prefers-reduced-motion disables it entirely. New Settings rows: Performance (Auto / High / Lite) and Resonance (Auto / On / Off). The accent palette is extracted from album art on requestIdleCallback, cached per track.
Fixed — volume slider did almost nothing past ~15%
setVolume mapped slider position directly to gain (linear). Because loudness perception is logarithmic, nearly all the audible change was crammed into the bottom of the travel. Volume now passes through a perceptual cubic taper below unity (the 1.0–2.0 boost zone stays linear, still caught by the limiter), so equal slider movement produces roughly equal perceived loudness change across the whole range.
Fixed — Folders view stutter on large libraries
getFolders ran a full SELECT … FROM tracks (60k+ rows) and re-derived the folder tree in JS on every folder click; that row set only changes on a library rescan, so it's now memoized and invalidated precisely at the four track-mutation sites (upsert, prune, metadata patch, album-art apply). Folder navigation on a large library is no longer an O(library) operation per click.
Added — clickable artist and album names
Artist and album names across Library, History, and Playlist/queue rows are now links to their artist/album views (a reusable EntityLink), reusing the existing navigation store.
Fixed — rating a song no longer changes the album's rating
The database split (per-track vs per-album ratings) was already correct; the Albums view was displaying the live track-score average as the album rating when an album had no explicit rating, so editing a song appeared to move the album. The editable album control now reflects only the explicit album rating, with the track average shown as a separate read-only hint.
Full Changelog: https://github.com/Evilander/newamp/compare/v1.6.0...v1.6.1
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Evilander/newamp
All releases →Related context
Related tools
Earlier breaking changes
- v1.5.7 IPC argument order standardized to (albumArtist, album) across all call sites
- v1.5.7 Breaking: IPC argument order aligned to (albumArtist, album) everywhere
- v1.5.7 Breaking: setAlbumRatingScore and getAlbumRating throw on missing input
- v1.5.6 Milkdrop broken on 1.5.4 and 1.5.5 builds; upgrade recommended.
- v1.5.5 Upgrade strongly recommended; version 1.5.4 cannot display albums.
Beta — feedback welcome: [email protected]