Temporary Note: Development may be put on a temporarily hold back while I handle some things IRL, but I promise to try my best to update.
Lokal v2.0.0
As noted in the discord, I apologize for my lack of updates and community feedback, I have been burnt out with a bunch of other stuff as well as with finals.
Right now I am at the point of development where I would like to hear user's feedback with stuff to add, as I do not want to keep pushing features that will bloat the program so I would love to hear feedback!.
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.
Recap & Stories
Quarterly Recaps: Added a new page to the sidebar in order to show your recaps of each quarter of the year to look back at what you've listened to over the months (and even years if you stick around!)
Recap Stories: Review your music journey with an instagram stories-like view of your top stats over the quarter (genres, artists, and even top track!)
Playlist Importers & "Ghost" Tracks
Exportify & CSV Support: You can now import metadata directly using data from Spotify (or other platforms if you prefer) with tools like Exportify.
Exportify/Spotify is recommended due to the metadata it exports to us, such as whether the song is Explicit, the label, and other stuff that can later be used to algorithmically determine what songs you'd like to listen to.
Ghost Songs: When you import a playlist that references songs/tracks you don't have locally installed, Lokal safely catalogs them as "Ghost Tracks". Ghost songs are also filtered out of regular playback queue to prevent them from getting in the way of your listening. You can resolve them cleanly on the top of your playlist by downloading the songs (or manually using the GUI to pick a song to replace the Ghost Song).
Pending Import Metadata: Tracks that are ghost songs that have linked metadata (such as genre, album artist, etc) will be linked to the song once found/replaced.
Audio, Syncing & Tools
Interactive Lyrics: You can now click any lyric to jump to that point in the song in order to hear the lyric.
Instrumental Tagging: Songs can now be marked as instrumental, which prevents the song from ever attempting to fetch from LRCLIB.
10-Band Equalizer: Added 5 more bands for more flexibility in EQ control (w/ some presets already there).
Automatic Genre Modals: Improvements to the modals already there in order to be able to pair songs of similar metadata.
Last.fm Scrobbling: Last.fm scrobbling has now been fixed to fully be complete + working, working even through crossfades, track skips, and multi-artist tags.
Personalization & UI
Profile Overhaul: A new overhaul of the profile system, provided to have a tab to showcase and customize your profile (even if local), with a bio, avatar, and personalized sections based on your listening history.
Dynamic Theme Tinting: You can tint the main application icon to match your theme, although we are working on improving it to be more than just a filter.
Explicit Content Indicators: Added explicit content badges [E] across the player bar and track listings.
Window Restructuring: Fixed UI layout bugs where elements would clip/bug with certain resolution configurations.
Performance & Stability
yt-dlp Self-Updater: Added an updater system that'll check for the latest yt-dlp builds, alerting you if it's outdated and allowing you to update it, and preventing crashes from active song downloads during an update cycle.
Lazy-Loading Artist: Optimizations to the scanner and database queries so the app can hopefully no longer choke as much/freeze when scanning huge libraries, as well as lazy loading tracks on your playlist to prevent lag from loading them all at once.
Safer Engine Preventions: As noted in a recent Issue, there have been some overhead for the SQLite query layers so that parsing songs doesn't get messed up and have missing placeholder values.
Fail Safe for Downloading: Closing the application now kills any rogue background download processes gracefully to prevent errors on the next load.
I appreciate all the Issue and feature requests, helping me to add many more features to the app.
Full Changelog: v1.9.0...v2.0.0
Setup
See README.md for full setup instructions.
Binary Checksums (SHA-256)
Lokal-2.0.0-arm64-mac.zip:
[3BCD21C132A7D19EE7A50F30C960762B9244290D2D430971249600BEF6A9ED27]
Lokal-2.0.0-arm64.dmg:[48A873E635DBBCC06F83DAC3C7030E69CD6B33BA6239AF6D687DD0EE19CEC30F]
Lokal-2.0.0.AppImage:[1D4294D939D5E20C6DD5F61C9EA8D06A3627EBFDE697EFF1B9EC1F747408D3FF]
Lokal-2.0.0.exe:[034FE34614FAFE0BB0D0D75473D50E584FDDF44139EC04F4CCD1481BD11D0C04]
Lokal-Setup-2.0.0.exe:[8055B1EE77364A3487EB02BF2DB728A899CDED3892FCBF75BA19A7385427DCE3]
latest-linux.yml:[49C3854ED688D5C8A30DD74917C9E87BFF37F0793D3FB26A7842DBC8C3AADB73]
latest-mac.yml:[DB768EF42FF6FAC6896DD74D18AA1F0B0A38479B297428EB5978C5607103ACAD]
latest.yml:[220ACB838009260070F46AF0069722A8E3755418059AC25F68E0D1A80C302A1B]
lokal-music_2.0.0_amd64.deb:[EF5BABB06CBD3ED344BBA601B56A8EB3608271FF511CE072463B79956C14A623]