-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BeatDetectionSettings: change minimum BPM to 60 #2693
Conversation
Only 2 of the 12 tracks I had detected as between 60-69.9 BPM were actually double that tempo. The rest were dub, blues, and ambient that is actually 60-69.9 BPM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need to clarify the implications of this setting.
Here:
https://www.musical-u.com/learn/rhythm-tips-for-identifying-music-genres-by-ear/
I see a much wider range if Bpms
My hardware metronome had the range from 40 to 208.
I think we have original picked 70 to 140, because this will move all tracks in a region where they can be beatmatched. Your 60 Bpm track will become 120 and works perfect with the maxority of the other tracks.
With 60 as start value this "feature" is broken.
The limits are only applied for const beatgrids, and since we want to move away from it. This will be soon not relevant anymore.
Intentionally making data incorrect is a horribly ugly hack if this is the intended use case! I want my 68 BPM tracks sorted by my 72 BPM tracks, not by my 136 BPM tracks. If we actually want to support such a use case, let's make an easy way for users to identify tracks that are near double or half a BPM. But that is beyond the scope of this PR. |
I have a few tracks that are really between 60-69.9 BPM, but I have none that are actually below 60.
43256db
to
9667c4b
Compare
I use non-const beat grids so I don't mind about this feature. I have just explained why this was introduced. It was designed before we had a sync engine that can handle double and half syncing. The point here is that if we change the minimum to 60, we breaks the original feature of showing compatible tracks side by side. If we want to show the real tempo in the library, we also need to adjust the upper limit to a value from the link. Maybe it is reasonable to keep the 70 to 140 range and disable the limits by a checkbox or something. |
I disagree about the maximum BPM feature. It is not to intentionally make data incorrect, it is a hack around the analyzer's incorrect data. Most my tracks detected as >140 BPM are actually half the detected tempo. A few are really >140 BPM. The converse is not true; most detected tracks <70 BPM are actually <70 BPM. For those that are actually >140 BPM, I can manually double the BPM, which is finally easy to do since #2612.
I disagree. This is likely just as relevant for variable tempo beatgrids. Anyway, these points are all beyond the scope of this simple change to only the minimum BPM. |
We literally just removed this unexposed setting in #2692. There is no need for it. The user can just enter a very wide range for the BPM values if they want. |
There is nothing to agree and disagree about. It is the 2.2 case that currently all tracks are by default artificially moved into the same region of 70 to 140 = 2 * 70. This implicit help to find matching tracks. I don't think this is a good design choice for Mixxx 2.3. If we change the default away from this, we need to choose a realistic range that covers all possible bpm, and sort out unplausible an unhandy values. If we want to fix a bug in the beat detector as you mentio it should be not exposed to the user. So I think we can agree to one of these alternatives:
And decide for a hidden maximum fix. |
I don't see the point why we need to discuss hypothetical limits for the default limit? It should sufficiently fit the Top 40 use case. Everyone is free to adjust this setting depending on their musical style.
All competitors only allow to select among predefined ranges, no support for custom ranges. I'm fine with the lowering the limit to 60. A default range of 60-180 bpm (min = 3x max) would cover even more cases, but on the other hand might get the tempo of many slower tracks wrong. |
It is all about the what we like to acheve by default:
In 2.2 we do 3) for the not existing legacy reason of the sync capacity. So the basic idea of this PR to remove it is good. So we just need to decide between 1) or 2) I would vote for 1). The issue we have to check what happens with the detector, since these values are input values as well. If high results are unpredictable, they do not become predictable if we devide the result by two. This just obfusticates an isssue. Listing the high and low values in the library helps to find the tracks that needs some more love. |
None of these are what I want or expect. I want the true BPM. That is it. Don't overthink it. Whatever we can do to get close to the true BPM is what we should do.
This is not what I found when analyzing my whole library without any limits. Most of the tracks >140 BPM were detected as exactly double their true BPM. Again, the reason for this PR is that the converse is not true. Most tracks detected as <70 BPM are actually slow tracks. |
So... what has happened from what we talked on https://mixxx.zulipchat.com/#narrow/stream/109171-development/topic/BPM.20analysis.20improvements ? Your last comment was "Maybe we should disable the range by default", because you were considering that a few more bad cases shouldn't force other possibly correct results to be wrong. As Daniel said, the 70-140 range (70-139 better) just allows the detector to not overestimate tracks (underestimate is rare, as you also saw). But even with this, I also have to fix incorrectly detected tracks, so which is really the default user experience? |
This PR is marked as stale because it has been open 90 days with no activity. |
Minimum BPM has been removed from the preferences, but there are not merge conflicts so min/max BPM values still exist in our code. Is this still relevant? |
No idea why GitHub does not show a conflict. At least the changed line is gone. So we can close this.
|
I have a few tracks that are really between 60-69.9 BPM, but I have none that are actually below 60.
This requires #2692 to work.