Skip to content

Stash v0.9.25

Choose a tag to compare

@rawnaldclark rawnaldclark released this 15 May 10:27
· 1242 commits to master since this release

Stash v0.9.25 — loudness normalization + Save-to-Playlist fixes

Merge branch 'loudness-normalization' into master.

Loudness normalization

Every track now plays at a consistent perceived volume — no more
volume-knob fiddling between a quiet acoustic recording and a
maximally-mastered pop single. On by default; tracks in your existing
library get measured in the background while charging.

  • New DSP stages in the audio chain (LoudnessGain + SoftClipLimiter)
    alongside the existing EQ.
  • ReplayGain-style measurement via the bundled ffmpeg's ebur128
    filter; runs once per track at download time.
  • Backfill scanner measures your pre-existing library while the
    device is charging + idle (batches of 20, capped at 10 min/run).
  • New "Loudness Normalization" card in the EQ screen with a toggle
    and a "Library measured: X of Y tracks" progress block.
  • First-run notice on the EQ screen so you know it's on.

Save-to-Playlist fixes

  • The picker is now scrollable (was a static Column with no scroll
    modifier — overflowed the sheet height when many playlists were
    listed and the Create row at the bottom was unreachable).
  • "Create New Playlist" pinned at the top of the list so it's always
    one tap away.
  • Picker visibility now matches the rest of the app: a playlist is
    pickable if sync is on, OR it has at least one downloaded track,
    OR it's a Stash-native custom. Sync-disabled imports with no
    downloaded content no longer pollute the list.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com


Install

Download the .apk below and open it on your Android device. If you've got a previous Stash release installed, this upgrades in place — your library, sync history, and settings are preserved.

Requires: Android 8.0 (API 26) or newer.

See the README for first-time setup.

Full Changelog: v0.9.24...v0.9.25