key not detected for some tracks

Bug #1828212 reported by Be
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
Unassigned

Bug Description

Using master with a new database and running batch analysis on all files, some tracks have BPM detected but not key. When loading them to a deck, the key is not shown. When clearing the key and reloading, still the key is not detected. This is reproducible every time when running master with a new database.

Tags: analyzer
Be (be.ing)
Changed in mixxx:
importance: Undecided → High
milestone: none → 2.3.0
Revision history for this message
Be (be.ing) wrote :

I tried making a new database with 2.2 and analyzing it. All tracks that had a valid detected BPM also had a detected key, so this is a regression in master. Opening the database with analyses done with 2.2 with master works fine, so this is an issue with the analysis in master. I presume it is related to the recent multithreaded analysis changes.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

Unfortunately I'm not able to confirm this. Both the ad-hoc analysis of the PlayerManager as well as the multi-threaded batch analysis reliably detect both bpm and key of all analyzed tracks without exceptions.

A previous bug was already fixed, I will update the status: https://bugs.launchpad.net/mixxx/+bug/1813413

tags: added: analyzer
Revision history for this message
Be (be.ing) wrote :

The same tracks are affected when analyzing different databases, so I am doubtful this is because of a race condition.

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

For a few track no key is detected, no matter how often or when I analyze them. I think that's expected. The settings of the QM key analyzer may affect this behavior.

Key analysis is still single-threaded and synchronized with a mutex.

Revision history for this message
Be (be.ing) wrote :

That is not expected. All tracks that were able to be read and weren't blank filler tracks had a key detected with 2.2.

Revision history for this message
Be (be.ing) wrote :

Enabling the "Re-analyze keys when settings change or 3rd-party keys are present" preference option and reloading the affected tracks does not result in their keys being detected.

Revision history for this message
Be (be.ing) wrote :

The multithreaded analysis branch ( https://github.com/mixxxdj/mixxx/pull/1624 ) was merged before the VAMP removal branch ( https://github.com/mixxxdj/mixxx/pull/926 ). The merge commit for the multithreaded analysis branch (b9c9b7f) correctly analyzes these tracks' keys, but the merge commit for the VAMP removal branch (18e9314) does not. I did a git bisect to find which commit introduced the regression, but I could not identify that because none of the commits in the VAMP removal branch build before 1fcbf31c07314edfe1c83b355554182b0fbb300e

Revision history for this message
Be (be.ing) wrote :

To clarify, the bug is present in commit 1fcbf31c07314edfe1c83b355554182b0fbb300e

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

I will check the DownmixAndOverlapHelper (including some refactoring and code style fixes).

Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :

A simple logging statement gives some insights:
Warning [AnalyzerThread 0 #1]: No key detected in analyzed window: 25

Seems to be a rounding error in GetKeyMode::process()

Changed in mixxx:
assignee: nobody → Uwe Klotz (uklotzde)
status: New → In Progress
Revision history for this message
Uwe Klotz (uklotzde-deactivatedaccount) wrote :
Be (be.ing)
Changed in mixxx:
status: In Progress → Fix Committed
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/9655

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.