True SHIFT modifier MIDI capability

I recently looked more closely on the “Controller SHIFT” action in the MIDI mapper, because and I was expecting to have an option to create two entries with same MIDI message on the MIDI mapper and then be able to chose the modifier condition (Controller SHIFT pressed) in one of the two entries.

From a previous (now closed) discussion : Controller Shift Key - Setting, Usage

I understand that this Controller SHIFT is only supposed to trigger the existing shift layer on certain controllers that support it. But there is no list of supported controllers.

Wouldn’t it be more useful to implement it the way I described above ? Why would someone want to remap a physically already existing shift button on their controller ?

In the past I have been creating quite sophisticated mappings on Traktor Pro, using their SHIFT Modifier system which kinda worked that way but allowed to create several SHIFT modifiers (M1, M2, M3 etc…) then chose them as condition to trigger different actions on the different entries of the same MIDI message in the mapper.

Something similar, even with just one SHIFT modifier would make the MIDI mapping capabilities of Djay much more powerful than it is right now. We currently fully rely on the existing hardware-coded layers which is very limiting for some controllers.

Thanks for the suggestion @jayneural! Good idea. I have forwarded this to the dev team for consideration.

This sounds closely related to this existing suggestion. Please confirm, if I can move your suggestion to it or if you feel it needs to remain separate?

Hi again @jayneural, I spoke with our engineering team regarding this,

From a previous discussion, I understand that Controller SHIFT is meant to trigger an existing shift layer on certain controllers, though no list of supported controllers exists.

That is incorrect actually. The “Controller Shift Key” action adds a shift layer in software, i.e. it’s not for mapping shift layers that are handled in controller firmware.

It would be helpful to understand what exactly is not working for you. The way this feature should be working is like this:

  • Map any button on the controller to the “Controller Shift Key” action to make it the SHIFT key
  • Press/move a button/control without the SHIFT key pressed => a normal non-shift mapping for the control is created / selected in djay
  • Press/move a button/control with the SHIFT key pressed => a second shift mapping for the control is created / selected in djay

Here’s what this looks like in djay. The last entry is the shift mapping for the same button/control mapped in the second entry (same MIDI note).

Hello @Slak_Jaw , and thank you for taking this into consideration. Yes, the way DJay does it is similar to the shifts in Traktor (through the software, being able to use one MIDI command + Shift rather than Shift commands changing the MIDI notes like AlphaTheta hardware) but if you know anything about the way Traktor does Shift commands, you’ll see that there is not just one Shift state, but 6 (1-7), and there are also 8 Modifiers, or ‘Shifts’ that you can use. Also, the behaviour of the SHIFT can be changed and given conditions. For example, each time I press the button assigned to my shift command, the number can increase incrementally up until 7, creating 7 ‘pages’ that I can assign buttons and LEDs that are active once the value of the Modifier, or ‘shift’ reaches that number, or state. As another example, back in the day I mapped my Kontrol S2 to control four decks in addition to the software step sequencer to toggle in and out when I needed them, all using Traktor’s modifiers in various ways. I don’t imagine there are many DJs that want to, say, give a DJControl Starlight four decks as well as full 8-step control of the slicer (besides me), but if you actually made this happen on DJay you would make me and a few other guys very happy, not to mention you’d be the only other company which supports MIDI mappings as extensive as Traktor’s.

Thanks for the additional info and feedback @IAmTheUngulate. I will share this with the dev team.