Skip to content

CMRT 32 - TEST: CMRT Phase 2 Complete - #45

Draft
Swarnadip-Kar wants to merge 106 commits into
gsoc-cmrtfrom
temp-cmrt-use-cmrt-beatgrid-test
Draft

CMRT 32 - TEST: CMRT Phase 2 Complete#45
Swarnadip-Kar wants to merge 106 commits into
gsoc-cmrtfrom
temp-cmrt-use-cmrt-beatgrid-test

Conversation

@Swarnadip-Kar

Copy link
Copy Markdown
Owner

Test Branch for CMRT data Transfer to member tracks
when loading to deck with offset calculation.

Also Various Fixups

Adds schema revision 41 to extend the library table with
MusicBrainz and AcoustID metadata fields required for
Chromaprint-based lookup workflows.

New columns:
- musicbrainz_recording_id
- musicbrainz_release_id
- musicbrainz_track_id
- musicbrainz_artist_id
- acoustid_id
- acoustid_lookup_at
- acoustid_lookup_status

Also adds indexes for MusicBrainz and AcoustID lookup paths.

The revision is backwards-compatible and does not modify
existing user data.
Adds schema revision 42 extending track_analysis with a
TEXT payload column intended for small metadata blobs such
as audio quality metrics and Chromaprint version metadata.

Raw fingerprint arrays are intentionally not stored in
the database.

Also adds a composite lookup index on (track_id, type).
Adds schema revision 43 introducing database tables for
Chromaprint fingerprint grouping, CMRT membership,
AcoustID queue management, and AcoustID response caching.

New tables:
- fingerprint_metadata
- cmrt_groups
- cmrt_members
- acoustid_queue
- acoustid_cache

Design notes:
- fingerprint_hash is a non-unique SimHash pre-filter
- chroma_sha256 is used as the canonical integrity key
- raw fingerprint arrays are not stored in SQLite
- ON DELETE CASCADE is intentionally omitted

Also adds supporting indexes and bumps
kRequiredSchemaVersion from 42 to 43.
This commit implements reading, writing, and deleting `.chroma`
binary files directly to disk, avoiding BLOBs in the SQLite database.
It also wires TrackFingerprintDao into the broader DAO ecosystem
and adds file cleanup cascades into the central track purging logic.

Changes:
- trackfingerprintdao.h/cpp: Accept UserSettingsPointer to manage
  paths privately in ~/.mixxx/fingerprints/ and add save/load/delete.
  saveChromaFile uses a write-temp-then-rename pattern.
- trackdao.h/cpp: Add TrackFingerprintDao dependency and loop over
  purged tracks in onPurgingTracks() to call deleteChromaFile().
- trackcollection.cpp: Initialize m_trackFingerprintDao with pConfig
  and pass to m_trackDao.
- libraryscanner.h/cpp: Add TrackFingerprintDao member to satisfy
  the updated TrackDAO constructor dependency during background scans.
Integrate AnalyzerChromaprint into AnalyzerThread and
register analyzerchromaprint sources in CMakeLists.txt.
@Swarnadip-Kar
Swarnadip-Kar force-pushed the temp-cmrt-use-cmrt-beatgrid-test branch from 107d01e to 3f1bb8e Compare July 9, 2026 18:08
@coveralls

coveralls commented Jul 9, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 29145355702

Coverage decreased (-0.8%) to 30.159%

Details

  • Coverage decreased (-0.8%) from the base build.
  • Patch coverage: 3062 uncovered changes across 31 files (104 of 3166 lines covered, 3.28%).
  • 11 coverage regressions across 4 files.

Uncovered Changes

Top 10 Files by Coverage Impact Changed Covered %
src/library/dao/trackfingerprintdao.cpp 1132 23 2.03%
src/musicbrainz/acoustidworker.cpp 320 0 0.0%
src/analyzer/analyzerchromaprint.cpp 208 0 0.0%
src/musicbrainz/fingerprintmatcher.cpp 200 0 0.0%
src/musicbrainz/cmrtgroupingservice.cpp 195 0 0.0%
src/preferences/dialog/dlgpreffingerprint.cpp 173 0 0.0%
src/track/track.cpp 177 6 3.39%
src/library/basetracktablemodel.cpp 166 0 0.0%
src/library/musicbrainzqueue/dlgmusicbrainzqueue.cpp 134 0 0.0%
src/library/dao/trackdao.cpp 105 10 9.52%
Total (37 files) 3166 104 3.28%

Coverage Regressions

11 previously-covered lines in 4 files lost coverage.

File Lines Losing Coverage Coverage
src/library/basetracktablemodel.cpp 4 8.32%
src/library/analysis/analysisfeature.cpp 3 14.86%
src/library/queryutil.h 2 58.06%
src/widget/wtrackmenu.cpp 2 0.0%

Coverage Stats

Coverage Status
Relevant Lines: 117469
Covered Lines: 35428
Line Coverage: 30.16%
Coverage Strength: 58640.31 hits per line

💛 - Coveralls

@Swarnadip-Kar
Swarnadip-Kar force-pushed the temp-cmrt-use-cmrt-beatgrid-test branch from 3f1bb8e to 90db7c8 Compare July 10, 2026 20:29
@Swarnadip-Kar
Swarnadip-Kar force-pushed the temp-cmrt-use-cmrt-beatgrid-test branch from 90db7c8 to eecc3fc Compare July 11, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants