-
-
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
[WIP] Alternative key detection algorithm #2135
base: main
Are you sure you want to change the base?
Conversation
Christina Perri - Jar of Heards
now:
|
I am currently rebasing this on top of #2137 |
Now rebased on the upstream fixes. And even better :-) We can improve it more by a two pass analysis, forward and backward. And then sync key changes with phrases. Than a visualization in the overview widget will make the feature perfect. For now we need a reasonable number of tests and identify miss detection. How to handle key changes? The Minor Major border within on scale (C<->Am) if fuzzy anyway and does not matter at all when looking for a compatible track. Even the far most common change to a neighbor scale in the circle of fifth is not that relevant, because of only one note of scale. So I think it OK to use only the major key for finding a compatible successor. Problematic tracks are the rare tracks, recorded in a harmonic melodic and gypsy scale or tracks jumping in the circle of fifth like Michael Jackson's Man in the Mirror. I propose not automatic to show a key for these tracks. I think it is in the responds of the DJ to set it or leave it blank. Alternative we may invent a new nomenclature for this. But I think it is only a negligible case. Green Day - Good Riddance (Time Of Your Life)
Alan Walker - Faded
REM - Losing my religion
Moby - Bodyrock (Olav Basoskis Da Hot Funk Da Freak Funk Remix)
Michael Jackson - Man in the Mirror
Christina Perri - Jar of Heards
|
Please rebase once again. Is this a candidate for 2.3.0 or 2.4.0? |
2.4. This is a big change that requires extensive testing and feedback. |
This is a 2.4.0 candidate. This needs to be tweaked and tested a lot. Currently it works better for some tracks and worse for others by taking more CPU. No good trade ... |
@daschuer is it possible to implement a confidence level and in cases the confidence is very low, try the other algorithms. Or if computation power does not matter, try all in parallel and calculate the most likely result with confidence in mind. |
Yes, that should be possible. |
I even consider to not annotate the track at all if the confidence it so low for both. This is even better than clutter the library with misleading key values. |
This PR is marked as stale because it has been open 90 days with no activity. |
This is a first prototype of a new key detection algorithm.
Highlights:
Compare results:
Green Day - Good Riddance (Time Of Your Life)
(A easy pure G major)
before:
now:
Alan Walker - Faded
(Changing Minor/Major key)
before:
now:
REM - Losing my religion
(previously wrong detected)
before:
now:
Moby - Bodyrock (Olav Basoskis Da Hot Funk Da Freak Funk Remix)
(Undetectable because of sweeping tones)
before:
now:
Michael Jackson - Man in the Mirror
(known for its famous key change from G to Ab)
before:
now: