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.jsassigned 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_genrepredicate. File tags and library metadata are unchanged.
Tests and trade-offs
- Update
scripts/genre-cleanup.test.mjsto 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]
