Track matching: ISRC merge with preferred Source #29
Labels
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#30 Track matching: fuzzy fallback, Source fallback and un-merge
SBDeveloper/medley
#14 Decide Track matching semantics (ADR + glossary)
SBDeveloper/medley
Reference
SBDeveloper/medley#29
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #13
What to build
With matching enabled, Library Tracks from different Sources that share an ISRC are grouped into one Recording (see ADR 0003). The Library shows one entry per Recording with its Source badges. The Recording plays the highest-ranked available Track by Source ranking, which the user can set, with a per-Recording pin to override. Tracks stay single-Source: Playlists, the Queue and Favourites keep holding plain Tracks, and Source Playlists are unaffected. When a Playlist or Queue entry's Track is unavailable, playback falls back to the next-ranked Track of its Recording and shows which one plays. Matching is opt-in; v1 separate-Tracks behaviour is the default. Sources expose an optional ISRC on Track metadata (local files read it from tags). Library Tracks only; no Catalog results, albums or artists.
Acceptance criteria
Blocked by
Core done in
b3e0270+ follow-up. Not done: Library UI (grouped entries, Source badges, ranking/pin/matching settings); Tauri commands and core.ts bindings exist. Queue shows the playing Track via playback state only.