github lokal-music/lokal v12.3.5
Release v12.3.5

5 hours ago

Release Banner

Merge pull request #641 from lokal-music/release/v12.3.5


Changelog

Windows builds: free code signing provided by SignPath.io, certificate by SignPath Foundation (code signing policy).

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.

What's Changed

  • fix(genres): intelligently regroup unrecognized subgenres into broad families (#640)

    Details

    Correcting the previous approach

    The earlier Other cleanup (#638) erroneously promoted frequently repeated unfamiliar genre tags into standalone genre cards. This PR removes that behavior. Lokal should recognize more music styles and consolidate them into its existing broad categories, not multiply the number of categories.

    How it works

    • Keep the same 21 canonical genre groups; never create user-defined genre groups from unrecognized tags.
    • Expand desktop electron/genreTaxonomy.json with 177 curated musical word/phrase hints, alongside additional exact hybrid/subgenre aliases, informed by the genre/style approach documented by Discogs and MusicBrainz. Examples: Future Jazz → Jazz, Future Soul → R&B / Soul, deep melodic techno → Electronic, traditional klezmer → World, experimental shoegaze → Rock.
    • Exact known aliases take priority, so recognized hybrids such as Jazz Rap → Hip-Hop and Jazz House → Electronic retain their intended group.
    • Secondary classification only matches whole musical words and phrases, not dangerous substrings; Rockstar cannot accidentally become Rock. Indie/Alternative are treated as modifiers when another clearer style exists.
    • When a label is genuinely unknown or points equally to conflicting families, it stays Other, even if hundreds of tracks use it. Invalid junk remains No genre.
    • Continue filtering/matching using the same canonical logic. Existing metadata/tags are never edited and no online classification occurs at playback or browsing time.

    Verification

    Extended genre tests cover representative styles across many families, ambiguous hybrids, unrelated substrings, repeatable unknown tags and SQL filtering. A real-library before/after reduction cannot be quantified without access to the user's actual tags. Node tests and CI are not yet verified.

    Companion mobile PR carries the same static taxonomy and classification logic.

    Summary by CodeRabbit

    • Improvements
      • Recognized genre names and subgenres are grouped under canonical genres, making genre labels and summaries more consistent.
      • The genre list now covers more aliases and subgenres across a wider range of music categories.
      • Ambiguous or unrecognized genre labels are grouped under “Other” instead of creating separate categories. Empty and numeric-only tags remain excluded.

Contributors: @CHEYCKIT

Full Changelog: v12.3.4...v12.3.5


Setup

See README.md for full setup instructions.

macOS: this build is ad-hoc signed, not notarized (no Developer ID certificate is configured). The first time, right-click Lokal in Applications and choose Open, or run xattr -dr com.apple.quarantine /Applications/Lokal.app.


Binary Checksums (SHA-256)

Lokal-12.3.5-arm64-mac.zip: [31EE2C75C18C70E458FC47A8AC6D5B588B973334E9C61748C8650E1AD1C6BAFE]
Lokal-12.3.5-arm64-mac.zip.blockmap: [D2B1A37F5D6A112168815964DC7838D6C3D6D89B2035583303A45653DCB44169]
Lokal-12.3.5-arm64.AppImage: [FF77CE1759E9EF0739D100EB5162E8CFBBC64D323CE99DCB5610BD24BA4A0593]
Lokal-12.3.5-arm64.dmg: [2BEFC3F327FE4A50CEC1285AF25E21856513F1C63C09E0D2A834C68B684AB919]
Lokal-12.3.5-arm64.dmg.blockmap: [BE1E6B7397F17B102842BC790DB41C2634A03F531A871940553763AE4ED052F9]
Lokal-12.3.5-mac.zip: [A356DD450FC83A76545AB98A62C55CAC8D40D4DD16F398266655C4EE5DB90194]
Lokal-12.3.5-mac.zip.blockmap: [4EFA90C19C71BE2E1D3DAA27D9F3E4DA51F97E27B3C371476D25BDA955C8109B]
Lokal-12.3.5.AppImage: [9863CAF04226C08AC610A30BB58F53CD2B3D16F9FF388A86B09054D4B838A045]
Lokal-12.3.5.dmg: [95CBABE6F6FC095C47740C630806C8A14941503E3DDEA1E13D99F9DB82E0F524]
Lokal-12.3.5.dmg.blockmap: [6A66C988DC51850144B3695A21FE4ABEFDE25EA7F3EB7C2B55BB9A6472AD1EE3]
Lokal-12.3.5.exe: [861CB422ACE005A075541649C34E5D703ABECE8774FAE137F3052F1435B2D7D8]
Lokal-Setup-12.3.5.exe: [7EB6C09237F809CD6744D0F55A5357FD5A3EA83829A1F438C00F9D4BF5C1B3EC]
Lokal-Setup-12.3.5.exe.blockmap: [CC6256C424C88321261C621D775D5542E7A65B811DF0A80736E50FB9DE9A540B]
builder-debug.yml: [07867B71802FB8F51BF1285925897F0202A4E5B1B72CC720706017B1A33F6535]
latest-linux-arm64.yml: [92A09AE14E8DE1197734694D281C33740DAFC76CD4A290B57BE846DBB349833A]
latest-linux.yml: [E1D439D2360CD355309A8E7420444AD06261C4433E52FCB3E633FD82B77F0905]
latest-mac.yml: [D7E0E6E1165E4A3B5985FA7948F33B63C7EE6569DA20402518BB3B28F447EFF9]
latest.yml: [BD522CE1998969EEE413FA8ED315BB573B4F028C85350AF2D83C8CAB951EC0C1]
lokal-music_12.3.5_amd64.deb: [0C42CD2EADB79FF46F10284B80DFCB6DFB88D8F873AF5A75AB6D0F04B1C3AAEF]
lokal-music_12.3.5_arm64.deb: [7891CD09FA55C6FF5745407724CCF750A7CFDA3F2FFD505504A4BE135B6962FE]

Don't miss a new lokal release

NewReleases is sending notifications on new releases.