mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.46k stars 1.27k forks source link

add 'mix in key' mode, toggle by longpressing 'match_key' #10129

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: fkbreitl Date: 2020-09-25T19:00:59Z Status: Confirmed Importance: Wishlist Launchpad Issue: lp1897332 Tags: easy, key, sync


In Mixxx 2.2.4 it is not possible to turn on key sync by pressing the 'match' button long. It is a not only annoying to remember to press the match button for every new song but it is also a source for error. It would be important to make the match button a witch like beat sync. Beat sync can be easily switch on by pressing the 'sync' button long.

I am running Mixxx on Windows 10.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-09-26T13:00:38Z


Also Rekordbox names this function key sync in analogy to beat sync. Maybe it would be nice to use a common name for this function and rename it.

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2020-09-26T17:09:54Z


Key sync is what it is already called in Mixxx.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-09-26T17:40:40Z


Ok, but the button is labeled 'match' not 'sync'.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-09-28T03:14:04Z


Would we use lancelot key compatibility? (i.e., either exact match or one number or letter different)

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-09-28T07:21:52Z


I don't know. But here I just requested to turn the button into a switch. I didn't see any problems with the current key sync behavior. Changes to the key sync behavior should be a separate issue.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-09-28T15:56:53Z


There would be new code required to decide how to do key sync lock -- would it be sufficient to just match key on track load?

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-09-28T15:57:09Z


(Not asking you, Frank, just thinking out loud)

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-09-28T16:59:45Z


Alright Owen, thanks for your thought. I think that is exactly what should happen and what happens in Rekordbox. ... as if on every track load this key is pressed automatically because doing it manually is boring and is easy to forget.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2020-09-29T08:17:24Z


Such a sync key mode has some implications we need to consider.

Currently Mixxx shows the most common key. It is normal that the key changes during a track. There is also the issue that there is nothing like "the key" that you can detect. Mixxx detect the probability of all keys looking at the frequency of notes, than decides for the key with the most compatible notes.

So I think based on the current detection results, it needs human support to produce a reasonable good harmonic Mixxx.

I can imagine that a latching sync key button will do many odd things currently. Once we have changing key support and a detection based on chords, such a latching mode makes much more sense.

Maybe we should postpone the feature to that point.

mixxxbot commented 2 years ago

Commented by: fkbreitl Date: 2020-09-29T09:47:53Z


You can worry about these details and fancy algorithms later. For now just make the button auto press at track load. Nobody has to enable it, if one is unhappy with the result. However, many people don't like to press it again and again.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2020-09-29T12:18:32Z


For me it does not make sense to do the effort now. If you like to jump in to make it happen before, I am happy to receive a PR. Here are some hints: https://github.com/mixxxdj/mixxx/wiki/Bugfix-Workflow If you have questions, just ask at https://mixxx.zulipchat.com/

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-09-29T13:46:21Z


I don't think it's necessary for the feature to be perfect before we can think about implementing it. You say you want Mixxx to track key changes, I think that's a rabbit hole with no end. What about songs with complex chord progressions or non-western tonality? We can't account for everything, and just because we can imagine cases where it won't be perfect doesn't mean it won't be useful much of the time.

If rekordbox does something simple, we can do the same. Just match keys based on the library on track load. Maybe it won't sound perfect, but it provides a starting point for the DJ. They can tweak or reset the key adjustment if they want. If, later, we want to enhance the feature, we can. Better to launch and iterate.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2020-09-29T13:46:55Z


I agree with daniel, this isn't a priority for us but it would be a good starter bug for someone.