Matching parity for batch, fast mode, and fixes for #11 & #12 - #13
Merged
Merged
Conversation
… feedback
Matching (the "single finds it, batch doesn't" reports):
- Score every provider hit against the candidate's parsed view of the track
in addition to the raw tags. Junk tags like title="Ariana Grande - Focus" /
artist="Unknown" used to reject the correct hit (30% title sim + disagreeing
artist); the parsed view (Focus / Ariana Grande) now matches it directly.
Artist-less views need an exact duration match so a same-titled song by a
different artist can never auto-accept on title alone.
- Batch now runs the same iTunes/Deezer last-resort rescue the single-song
screen had; rescued matches are validated by the scorer gates and always
saved as REVIEW.
- Placeholder artists ("Unknown", "Various Artists", ...) are treated as
absent instead of as disagreeing evidence.
- Feat clauses are extracted even mid-string ("Harli Kvin (feat. AV47) 420")
and trailing orphan numbers from "_420"-style suffixes get a loose,
review-capped candidate — fixes the Biba - Harli Kvin rip.
- New thumbnail check: a rescue candidate whose cover art perceptually matches
the local file's embedded art gains a small additive-only confidence bonus
(a differing cover never subtracts).
Fast mode (Settings > Provider): single-song search races only the top two
providers with a short timeout — faster, slightly less thorough, off by default.
Issue #11: the synced-lyrics player and the batch lyrics preview now fall back
to lyrics embedded in the audio tags (embed-only songs showed "no lyrics" /
an infinite spinner because only the sidecar .lrc was read), and both show a
real loading state that always terminates.
Issue #12: the home three-dot menu keeps only Settings — batch download has
its own button and the provider order lives in Settings.
Provider status honesty: providers that produced a believable synced hit but
lost the ranking are now shown as "found lyrics" instead of a red X, and only
providers that were actually queried can be marked as failed.
Save feedback: the Save .lrc / Embed buttons morph to green with a springy
pulse, sliding label and popping checkmark instead of an instant text swap.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QADiJzVyNycc1w28sirc1a
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Matching improvements ("single finds it, batch doesn't")
Ariana Grande - Focus/ artist=Unknownused to reject the correct hit (the raw view saw a ~30% title similarity and a "disagreeing" artist); the parsed view (Focus/Ariana Grande) now matches it directly — in batch too. This is what fixes Ariana Grande - Focus, Tyler, The Creator - Tamale and D-Devils - 6th Gate in batch runs.Unknown,Various Artists,<unknown>, …) are treated as absent instead of as contradicting evidence.Biba - Harli Kvin (feat. AV47) [Official Audio] _420(MP3_320K).mp3: feat clauses are now extracted even when junk follows them mid-string, and trailing orphan numbers (_420→420) get an extra loose candidate (review-capped), yielding the cleanBiba / Harli Kvinquery.Fast mode
New Settings toggle (off by default): the single-song search races only the top two providers with a short per-provider budget (8s, one retry, fewer candidates) instead of the full chain. Faster answers, slightly less thorough.
Issue #11 — lyrics preview not detecting lyrics / infinite loading
.lrc. For embed-only songs the player claimed "no lyrics" and the sheet spun forever. Both now fall back to lyrics embedded in the audio tags, load off the main thread, and always resolve to a terminal state (lyrics or an explicit "no lyrics in this file").Issue #12 — redundant menu options
Provider status honesty
UI polish
Tests
BadMetadataMatchTest(7 JVM tests) covering the reported songs, the junk-artist handling, the Biba filename parse, and the precision guards. All existing matcher tests pass. (SuicideboysMatchTest.loot— a live-LRCLib test — fails identically on unmodified master; pre-existing data drift, unrelated.)Closes #11
Closes #12
🤖 Generated with Claude Code
https://claude.ai/code/session_01QADiJzVyNycc1w28sirc1a
Generated by Claude Code