Accesso rapido:  

Forum: VirtualDJ Technical Support

Topic: Fuzzy key mixing
Is it possible to adjust the key match function to support fuzzy key mixing same as the new CDJ-3000s have? Or maybe there is a plugin that can do it?

Fuzzy key mixing says that any song can be matched to another by shifting the key by max. 2 keys up or down. Latest then it will be no further than one digit away from the to-be-matched song, which is "OK".
It is explained here: https://www.digitaldjtips.com/2021/01/fuzzy-keymixing-the-new-way-to-dj/
 

Inviato Mon 20 Dec 21 @ 1:49 pm
AdionPRO InfinityCTOMember since 2006
 

Inviato Mon 20 Dec 21 @ 2:22 pm
Thanks for your response, but I probably did not express myself clearly. The fuzzy mixing ensures that you will mix any tracks together, regardless of their keys (or key difference), without too much of distortion. Virtual DJ does something else when Auto Key is enabled:
"Selecting Automatic Key Match from this menu will change the key by up to one semitone on the opposing deck when a track is loaded. If the track has a greater difference than one semitone, it will remain unaffected."

I am looking for the same thing that it's on the Pioneer CDJ-3000s - pressing a single button would shift by zero, one or two semitones, selecting automatically the best matching target key.
 

Inviato Mon 20 Dec 21 @ 2:50 pm
AdionPRO InfinityCTOMember since 2006
Yes, that's exactly what it does.
The only exception is that it will not do more than 1 semitone automatically because that would mean a pitch change of about 12%, which is pretty noticeable on most songs (voices will sound very obviously too high or too low at that point)

If you are fine with pressing a button and you don't mind going more than 1 semitone out you can map a custom button to "match_key"
 

Inviato Mon 20 Dec 21 @ 4:01 pm
Thanks again for the response. I disagree with the "that's exactly what it does", but I appreciate the re-veryifying that in Virtual DJ it is done differently.

I understand that it is not a typical use case, but in the genres that I play the two semitone shift and also the diagonal match (i.e. from 10B to 11A) is OK in 95% of cases.

Would such feature be (theoretically) scriptable (i.e. on a User button)? Is the info about the key playing on the other side + about the distance from the key available to the script? I am willing to play with it, although I am VDJ scripting beginner.
 

Inviato Mon 20 Dec 21 @ 5:05 pm
AdionPRO InfinityCTOMember since 2006
Yes, like I said the script is match_key
 

Inviato Mon 20 Dec 21 @ 5:25 pm
So how do I read the key of the track playing on the other deck?
I only see these verbs: key/key_lock/key_move/key_smooth/keycue_pad/keycue_pad_color/keycue_pad_page/match_key/set_key
Is it get_key deck1 ?
 

Inviato Tue 21 Dec 21 @ 2:28 pm
AdionPRO InfinityCTOMember since 2006
"deck 1 get_key" would indeed show the key of deck 1.
I think most skins already show the key, so probably not needed unless creating your own skin.
 

Inviato Tue 21 Dec 21 @ 2:34 pm
locoDogPRO InfinityModeratorMember since 2013
it's just
match_key

that's all that is needed.
 

Inviato Tue 21 Dec 21 @ 2:35 pm
It is not, let me explain:
If I have on one side a song playing on 07A and on the other I load 04B, then:
* With autoKey the song would keep 04B (no change, because it is further than 1 semitone)
* With match_key 04B would change to 07A (too big change)
* With fuzzy key matching, it would change to 06B (2 key change), which is ok, because it is only one "diagonal" distance from 07A in the harmoic wheel. This is what I would like to achieve with a single key press.

How to get the key difference between or "distance from" the key of the track to be matched using the script?
 

Inviato Tue 21 Dec 21 @ 3:20 pm
I find this discussion very interesting, but shouldn't a good DJ be able to do that without software support?
 

Inviato Tue 21 Dec 21 @ 9:29 pm
I agree. But minimalism was never the VDJ concept or at least as I understand it, it is exactly the opposite. This "almost anything is possible" VDJ concept is the reason for me to choose VDJ although I own Pioneer gear. I am simply trying to script a feature that I liked on the new Pioneer CDJ-3000s (BTW it is a tool for "good djs").

I am very new in VDJ and VDJ scripting, but I am quite experienced in scripting. Thanks for helping me, I will contribute the results.
 

Inviato Wed 22 Dec 21 @ 6:12 am
I'm joining this thread here to support this request

Denon have also recently implemented this in EngineOS 3.2.0 across the Prime range and it works simply by holding down the keylock key for a few seconds.

I'm posting here an illustrative image posted by Phil Morse as well as the explanation he gave on the Denon forum when this feature was requested there:



Phil from Digital DJ Tips here.

We have taught the way Pioneer DJ has chosen to implement key sync in the new CDJ-3000 for over 5 years, so we are really excited to see them add it to their latest hardware.

Key sync as implemented by Denon DJ and all other companies is a function no DJ should touch in our opinion, because it does not always return usable results - anything more than two semitones shift in a key nearly always sounds terrible, and traditional key sync doesn’t respect that. (Even two semitones can be a step too far, sometimes.)

Key matching between songs is at best an art as well as a science for many reasons, and the Digital DJ Tips/Pioneer DJ way respects that, returning mainly usable results, most of the time. That’s why we call it “fuzzy keymixing” - a bit like “fuzzy logic” in computing, where shades of grey are taken into account.

We’ve raised this with the Engine devs too, and would be excited to see this development of keymixing included as an option in Engine OS. However, it is really simple to do it manually.

Of course, whether or not you should care about mixing in key is another debate entirely, but the good thing about this method is it allows you to mix ANY song you like, next, at all times - and have a fighting change of mixing it harmonically if that suits what you want to do with that transition.



 

Inviato Sat 23 Dec 23 @ 7:10 pm
locoDogPRO InfinityModeratorMember since 2013
this is entirely scriptable, it has been for a very long time.
 

Inviato Sat 23 Dec 23 @ 7:49 pm
Of course, but it would be so much easier to have the function implemented natively. Not everyone is a geek and has the skills or the time to spend their life scripting every function in VDJ.
 

Inviato Sat 23 Dec 23 @ 8:01 pm
You don’t need to be a geek, nor scripting guru. Ask Loco nicely and he will provide a suitable script faster than the light
 

Inviato Sat 23 Dec 23 @ 8:37 pm
Ignore the letter - it's not rocket science.
 

Inviato Sat 23 Dec 23 @ 8:56 pm
locoDogPRO InfinityModeratorMember since 2013
@groovin, it's trickier than that,
load song, exact key match (or at least harmonic num) ? do nothing : +1 ? do nothing : ... test -1, +2, -2 ? same logic, : needs a key move, move the key & run the tests again.

I'm not into artificial keys, I hear [and exclude] truly sour key combos in my head just from browsing, for me natural key is important, I pick the next track on feeling|rhythm|call & response , a slight key dissonance is just defying expectations.
 

Inviato Sat 23 Dec 23 @ 9:55 pm
I wasn't referring to the scripting. :-)

Using the fuzzy method, you're only ever going to be shifting a key two positions. Therefore, at most the DJ will have to press a button/move a knob twice. That's not so far removed from the request of pressing a button once, and there's no scripting involved.
 

Inviato Sun 24 Dec 23 @ 9:53 am