Ingreso rápido:  

Forum: VirtualDJ Technical Support

Tema: Help with remapping Pioneer DDJ-800 - $DDJ800_HID
My prime controller is Pioneer XDJ-XZ + 1x CDJ-850 and I am using DDJ-800 as a smaller/travel/battery-powered 2-channel option. I would like to unify the behaviour of the two. I did already some remapping on XDJ-XZ and CDJ-850 that I would like to replicate on DDJ-800, but I am struggling with one feature:
Fast search/seek

  • On the big setup, I am using Shift + turning the jog wheel.
  • I am unable to achieve the same on DDJ-800, as the conditions use the $DDJ800_HID variable that I do not understand and I only see it is true, in which case the mapping is "nothing".
  • Trying to map anything on SHIFT_JOG_TOUCH has no effect.

Can anyone explain what it is and if there is some way how to map Shift + turning the Jog?
I assume $DDJ800_HID has something to do with the DDJ-800 firmware.
 

Mensajes Sun 27 Mar 22 @ 10:14 pm
You should pay attention on the HD_JOG and HD_JOG_TOUCH keys.

Quick explanation:
DDJ-800 (as with a lot other Pioneer devices made for Rekordbox DJ) is a HID/MIDI hybrid.
This means that some elements like the JOGS and the MIXER channels send data on both HID and MIDI format.
HID is superior to MIDI in many aspects and offers much better accuracy.
Therefore when we encounter a controller that supports both both protocols we prefer to use HID.
However, a lot of controllers (like DDJ-800) have their HID protocol "locked" to a specific set of conditions or software.
So, to make a long story short, HID protocol may or may not be presented by the device under certain cases.
That's why we have come up with that strange mapping.
When HID protocol is present and working, the variable will be true.
And when the variable is true, the HID elements work, while their MIDI counterparts do nothing.
If HID is not present or stops working, the variable will toggle to off, and the MIDI keys will start controlling the software.

<map value="HD_JOG_TOUCH" action="var '$DDJ800_HID' ? shift ? nothing : touchwheel_touch" />

That's an example on how to stop touchwheel touch from working while SHIFT is pressed. You can modify it to suit your needs.

PS: In case you're wondering, usually SHIFT keys don't exist on HID as they do on MIDI and that's why you don't have a SHIFT_HD_JOG key for instance.
In MIDI, when SHIFT is held down, controllers usually send different MIDI data for the same physical button/key (hardware shift)
In HID that's not usually the case. They send the same data among with additional data that lets the software know that the user has the SHIFT button pressed (software shift)
 

Mensajes Mon 28 Mar 22 @ 12:52 pm
Hi George,

Thank you for the great explanation.

I tried exactly what you propose, unfortunately, it did not work:
<map value="HD_JOG_TOUCH" action="var '$DDJ800_HID' ? shift ? nothing : touchwheel_touch" />
<map value="HD_JOG" action="var '$DDJ800_HID' ? shift ? nothing : touchwheel" />

The song scratches/scrolls when scratching/turning the jog wheel with the shift pressed.

I see the following activity in the mapper after I press Shift (Shift toggles between on/off, but HD_SHIFT does not, it is off all the time - at least from what I can see):

SHIFT=off
HD_SHIFT=off

After I press Shift and rotate the wheel I get the below,

HD_SHIFT=off
SHIFT=off
HD_JOG 0.00
SHIFT_JOG_OUT_RING=0.00
SHIFT_JOG_TOUCH=off
HD_JOG_TOUCH=off
SH_FUNC_DISP=off
SHIFT_JOG=off
JOG_TOUCH=off

I cannot say for sure which variables changed (is there a possibility to turn on a log?), I could see the following variables changing values: SHIFT, SHIFT_JOG, SHIFT_JOG_TOUCH.
 

Mensajes Mon 28 Mar 22 @ 2:43 pm
Map HD_SHIFT key to shift, and try again without changing anything else. It should work out of the box...

<map value="HD_SHIFT" action="shift" />


Once you map HD_SHIFT key, VirtualDJ will also expose SHIFT_HD_JOG and SHIFT_HD_JOG_TOUCH.
Those two keys are already premapped to offer "search ability"

PS: Default mapper was updated too. The update will be available with the next VirtualDJ build.
 

Mensajes Sat 02 Apr 22 @ 3:39 pm
Thanks a lot for your support. Yes, it works now as expected.
 

Mensajes Sat 02 Apr 22 @ 6:15 pm
If you are updating the DDJ-800 mapper for the next release, I propose to review the SEARCH+, SEARCH-, SEARCH+_LONG and SEARCH-_LONG definitions. At least on my DDJ-800, pressing >> (for << - it is the same, just the other direction) button actually always triggers both SEARCH+ and SEARCH+_LONG events, regardless of how short my click is (I tried hard). So the song always jumps by 8 beats (because Virtual DJ does goto +4 and then immediately seek +4). I simply removed the SEARCH+ and SEARCH- definitions and everything works for me as expected, but I assume this is more of a workaround, the correct fix might be different.
 

Mensajes Mon 04 Apr 22 @ 8:17 am
It works as it should, but not as you "read" it.
That's because of some tricky firmware events.
Anyway, the correct behavior is "click once" to skip in time, "keep pressing" to seek the track.
 

Mensajes Mon 04 Apr 22 @ 11:40 am