CMRT 27: Pipeline: Wire MBID -> SimHash -> overlap -> quality -> group assignment - #36
Open
Swarnadip-Kar wants to merge 2 commits into
Open
CMRT 27: Pipeline: Wire MBID -> SimHash -> overlap -> quality -> group assignment#36Swarnadip-Kar wants to merge 2 commits into
Swarnadip-Kar wants to merge 2 commits into
Conversation
Coverage Report for CI Build 27872458852Coverage decreased (-0.1%) to 30.317%Details
Uncovered Changes
Coverage Regressions2 previously-covered lines in 1 file lost coverage.
Coverage Stats
💛 - Coveralls |
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.
Wires CMRT 24-26 together into something that actually runs: a new
CmrtGroupingService that AcoustIdWorker calls after every AcoustID lookup,
plus the two DAO methods it turned out to need that didn't exist yet.
CmrtGroupingService::processTrack(trackId, musicbrainzRecordingId)
getAllGroupCandidates() as a fallback.
FingerprintMatcher::compare() against the candidate's canonical .chroma.
the first one): compare quality scores. Higher score -> replaceCanonical();
otherwise -> assignToExistingGroup() as a regular member.
mastering.
New DAO methods (TrackFingerprintDao)
The latter two didn't exist before this PR -- addCmrtMember() only inserts,
and nothing previously updated canonical_track_id outside
clearFingerprintData()'s own inline SQL.
Wiring into AcoustIdWorker
m_pGroupingService is constructed right after m_pFingerprintDao in doRun()
(and reset right before it, in the reverse order) since it holds a
reference into that DAO, not ownership. processJob() calls
m_pGroupingService->processTrack() after the match-found and
no-match-found outcomes, gated behind kCmrtAutoGroupingEnabledConfigKey
(new preference key, defaults to true).
Notes for reviewers
std::unique_ptr -- flagged in case the inconsistency within
TrackFingerprintDao itself is unwanted; happy to change it.
processTrack() yet -- left as a TODO(XXX) with reasoning in the comment,
not silently dropped.
.chroma file per remaining group member. Fine for expected group sizes;
flagged as a possible future hotspot, not optimized preemptively.
Depends on: cmrt-matcher-core (#35)