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

2 hours ago

Release Banner

Merge pull request #639 from lokal-music/release/v12.3.4


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): reduce Other with known singles and real custom genres (#638)

    Details

    Why so many tracks were labelled Other

    electron/genreList.js assigned every unrecognized valid genre to Other and also folded every genre represented by only one track into Other. This hid legitimate styles, especially detailed/specialized metadata tags.

    Changes

    • Recognize 94 additional exact-match subgenre aliases (city pop, Afro House, UK garage, amapiano, shoegaze, Raï, and many others) in the shared desktop taxonomy. No fuzzy substring matching or metadata rewriting.
    • Preserve recognized genres even for one track; a single Classical or Jazz track is still browsable as Classical/Jazz.
    • Keep a repeated unknown genre (2+ songs) under its own readable original name, rather than mislabelling it Other. Normalize case, accents and punctuation for consistent custom-genre identity.
    • Reserve Other for explicit miscellaneous labels and genuinely one-off unknown tags that are not already covered by a recognized category; keep the existing No genre behavior when even Other has fewer than two tracks.
    • Apply the same rules to the Genres page, filters, and SQL lokal_has_genre predicate. File tags and library metadata are unchanged.

    Tests and trade-offs

    • Update scripts/genre-cleanup.test.mjs to assert previously folded Classical tracks and repeated custom styles are visible, singletons are still consolidated, mixed tags don't duplicate songs, and filters reflect the same rules.
    • The grid may show additional legitimate small groups; this is intentional and preferable to a huge opaque Other bucket.
    • A quantitative before/after count cannot be claimed without the user's actual library tag distribution.

    Companion: Mobile PR will mirror these rules and aliases.

    Validation: CI/test execution not yet verified.

    Summary by CodeRabbit

    • New Features
      • Expanded genre recognition to cover more styles across electronic, hip-hop, pop, rock, classical, world music, and other categories. Genre matching is more tolerant of differences in accents, capitalization, and punctuation.
      • Recognized genres now remain visible even when they appear on only one track. Repeated unrecognized labels also remain separate categories; unrecognized labels found on just one track are still grouped under “Other.”

Contributors: @CHEYCKIT

Full Changelog: v12.3.3...v12.3.4


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.4-arm64-mac.zip: [19814FDFF8B3654E382AB374904B965C255393A8E71D262DE4AC6392C390533A]
Lokal-12.3.4-arm64-mac.zip.blockmap: [0CA3BC32FA5650046C26A45F7CDE7C10F446A9E0DD98C5B0BE99119C6834A3B2]
Lokal-12.3.4-arm64.AppImage: [8A5686CE5B7ED47B478C7CF597183AE95295972066A4AF90475415CB2DF24519]
Lokal-12.3.4-arm64.dmg: [36C7DF65942A970D956B8B96985D1F0FC33547BE2BBE210DAA7003472A0EB6B2]
Lokal-12.3.4-arm64.dmg.blockmap: [C8B2B943D5AA36738FDB80313B7EACB34567C4A9F7D3976346BFCFBDB13473D7]
Lokal-12.3.4-mac.zip: [A8DD8A29307976FB2BC336C12D8CA663EF6665D581EA7F8EF0E04C321859D60B]
Lokal-12.3.4-mac.zip.blockmap: [C0E249B34FD75FAF7DD93D301752460EF2DE801FF4CD5B029B7EEA7DE5B24F85]
Lokal-12.3.4.AppImage: [1CE9C788BF9258F919FE4FBB33B4A66EEC451FEAEF6388967DDD98A2A2F2A55F]
Lokal-12.3.4.dmg: [D047BF445BEECF03458D1CD4E51B39135FD84AA3FFB74B1F5A832CC8FC53E5E3]
Lokal-12.3.4.dmg.blockmap: [A0FF66CAFC5E862830DE1132104FCA9F7F94D2FBA4532BED7B0DC0C026E82A43]
Lokal-12.3.4.exe: [2F01DD0D98097D61B2E056CA4AF6FC659ABA92504E415F7B59EDFC5254AD2D34]
Lokal-Setup-12.3.4.exe: [C1BC4891DCE72A7D152D20F84AEE67BFE5EE65409987F9AB680EF6FD82636BB6]
Lokal-Setup-12.3.4.exe.blockmap: [DEFB7E4C649C8BD7775C478ED9DED766E0661CA9752F61147394C7B849A35CC5]
builder-debug.yml: [AC864D0D2E034A1B9109E5BCFCDB5046648B99BC3B9E6A2EC2C42A03C7BF5E1A]
latest-linux-arm64.yml: [8DA2CCB6E99B2A0085B03BF32C941C3DD3091662EBE7B08D32DFF31BA4962205]
latest-linux.yml: [A8527D365F4559821F6CF530D125B5D944C22DF7925F52C342ACADD68B2DDFF8]
latest-mac.yml: [859FFE67B58077A3B23019235669D1187F88C1F15262EC76FCFF1507B8C97A40]
latest.yml: [2C64E272EB82962740954AB0D675C8BA0A663ABC485DDBB566796124A123D255]
lokal-music_12.3.4_amd64.deb: [634E848DCCAB55F7B288FB354DC58906E0A7010F884C58597CF511447D9736AC]
lokal-music_12.3.4_arm64.deb: [1E634BAC44D115063B18DCCB1A1317CB927F82B9FBDABE4005C84E84AD3A74E1]

Don't miss a new lokal release

NewReleases is sending notifications on new releases.