github lokal-music/desktop v2.1.2
Release v2.1.2

latest releases: desktop, v14.3.1, v14.3.0...
one month ago
image image image

Huge Performance Update! HPU for short!


Changelog

FYI:
Lokal is 100% local; the library, history, anything in database, or any info that is used for API's such as yt-dlp, LRCLIB, is NOT seen by us.

New Features

  • Smoother navigation: pages now appear whole instead of flashing their empty or loading state first ("Folder not set", "No tracks yet", "Loading artists…", MP3 briefly selected on Download). Pages you come back to show their last content instantly while refreshing quietly in the background. (#66)
  • Smooth fades on image-heavy pages: Home, Library, Artists, Albums and Recap fade in smoothly. Covers load in the background and fade in once ready instead of stalling the page. (#4)
  • Audio Quality numbers roll up to their values instead of jumping in, including live progress while a check runs. (#66)
  • Recaps by year, month and week: the Recap page has a three-level picker (Year → Month → Week) listing only periods with plays, and covers your whole history instead of only the last 12 weeks. Monthly recaps replace quarterly ones. (#63)

Critical Fixes

  • Addon downloads are properly tagged: songs saved from an addon get their title, artist, album, cover and lyrics, and are filed as Music/Artist/Album/Title (they used to be "Unknown Artist – 7779369"). (#64)
  • Recent items keep 15 entries: playing from a track list no longer cuts the list back to 5, and songs streamed from online search now show up in Recent and play again from there. (#62)
  • No false "empty" messages: a failed request now shows an error with a Retry button (Audio Quality, Recap) instead of claiming your library or history is empty, and pages keep what they were showing when a refresh fails. (#66)
  • Settings no longer jump around while loading; fonts are loaded up front so text doesn't change size on first open. (#66)

Small Updates

  • Download format defaults to Original (the source audio, no re-encoding) for anyone who never picked a format. If you prefer MP3, select it once on the Download page. (#66)
  • Library remembers its sort and view for the session. (#66)
  • The lossless button now appears on every track row (greyed out with the reason where it can't be used), so the row buttons line up. (#63)
  • Accessibility: reduced-motion settings get a plain fade, and pages can't take keyboard focus while they're still hidden. (#66, #4)
  • Nightly builds are tagged with their version, so they sort correctly next to stable releases on GitHub. (#65)

Problems

  1. Since the page transitions (#66/#67), "Delete from Library", "Edit track info" and the other popups opened inside a page appeared at the top of the page instead of the middle of the screen, so on a scrolled page you couldn't see them.
  2. The play next (clock) and add to queue buttons on track rows had no hover text and gave no feedback when clicked, so there was no way to tell what they did or whether anything happened.

Fixes

Popups

  • The page fade left transform: translateY(0px) on each page's wrapper. Any transform, even one that doesn't move anything, makes that element the containing block for position: fixed children, so every popup inside the page was placed relative to the page instead of the window.
  • The page wrapper's transform is now cleared once its fade-in ends.
  • Modal renders into <body> through a portal, so no page wrapper can move or clip it again.

Play next / Add to queue

  • Both buttons have hover text ("Play next", "Add to queue") and aria-labels.
  • Clicking them shows a short confirmation that slides up above the player bar: "Playing next: …", "Added to queue: …", or the count for a multi-selection. It fades after ~2 s, and a new one replaces the current one.
  • The confirmation comes from a shared Toaster (showToast() works from anywhere). It's announced to screen readers and uses a plain fade when reduced motion is on.

Full Changelog: v2.1.1...v2.1.2


Setup

See README.md for full setup instructions.


Binary Checksums (SHA-256)

Lokal-2.1.2-arm64-mac.zip: [C936FDDF34CAD702474D2357893233DBACC8BDC553CE71124790F678CC9B5F9F]
Lokal-2.1.2-arm64-mac.zip.blockmap: [F508E86D651F7CC7699AABDA6F60287E2ED0BCB1532A060608E7B5E1642A2422]
Lokal-2.1.2-arm64.dmg: [9DDC174095F8825E51CFE5C7B68F1828AEC425F924878EA4B3C14D76EF9D75EC]
Lokal-2.1.2-arm64.dmg.blockmap: [B9A0B0350AF29AF46CFC60BC4A99D2DA408375D066E1E5ECE975DE517334F663]
Lokal-2.1.2.AppImage: [B47C1866F597A50D6373A2E623A26FE1013FC3026F8C38D4792229B8E478C74E]
Lokal-2.1.2.exe: [C7BAD24C9B967FB25B25031A1A43E815C3D02894DCDCE6BA79AF7FB1A33B7774]
Lokal-Setup-2.1.2.exe: [D649A5A7A1E0E9EA0DD221BC5640ED548287CCAEB9ABE6F6E7E48A46692C849B]
Lokal-Setup-2.1.2.exe.blockmap: [28839014E6BB66042711B4A26C48144F16A3153551433B533FFE8E8CBEFC9E0D]
builder-debug.yml: [DB6C05B3BA2CF0683E8A7A31C2952434584F8AB79A58FD06D6387FF923BB793C]
latest-linux.yml: [26B97BC90BFA08D955FDDADB21428488D6B724C28E2AC0B70524C35C2614C59A]
latest-mac.yml: [ABB479261F9B3513660EEAC22F26BFFE7B3D340278D7FBBC26BBE79920883AA6]
latest.yml: [B5F41A640F5B5C125F00EA1636B345CF3D0143DCCBBF6C068BD790BF46CE252F]
lokal-music_2.1.2_amd64.deb: [F5F3CA34679E6C51ED89825E8698291E7FDC9C47D6FE0C37A16AC13BF36ECECF]

Don't miss a new desktop release

NewReleases is sending notifications on new releases.