Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: Mapping DDJ1000 knob per deck

This topic is old and might contain outdated or incorrect information.

a.zillePRO InfinityMember since 2019

I have a Pioneer DDJ 1000 controller and want to assign separate commands to the browse buttons on the left and right decks.
Unfortunately the button is only shown as a BROWSE_ENC in the mapping. How can I e.g. use the browse button of the first deck for the loop length, only if an active loop is loaded in deck 1? At the same time, the browse button in deck 2 should be used for browsing and vice versa: If a loop is active in deck 2, the browse button should only control the loop length of deck 2 and the browse button of deck 1 (without loop) implement the "Browse_Scroll" command.
I have already tried the following variant without success:
Mapping of Browse_ENC:
deck 1 loop? loop_double: browse_scroll &
deck 2 loop? loop_double: browse_scroll

-> Unfortunately, when the loop in deck 1 is activated, the browse function in deck 2 no longer works, because it is apparently internally routed as the same button (Browse_ENC).
So how can I access or map the deck-related Browse_ENC button?

I also have a Denon Prime4. There is a separate hardware button for each deck (1/2): Loop_ENC
However, the standard mapping for this button looks very simple: Loop_Double. Without reference to which deck the button should refer to. And here the loop length function works per deck, although the buttons (left and right) are not mapped separately.
If I turn the left Loop_ENC knob (Deck 1) only the left loop length is adjusted, if I press the right button (of Deck 2) only the right loop length is adjusted.
With the Pioneer mapping you unfortunately control the same parameter (loop length) with the different buttons (left and right side).

I look forward to your creative solution.
 

Posted Thu 10 Dec 20 @ 10:29 am
AdionPRO InfinityCTOMember since 2006
The easiest is simply
loop? loop_double: browse_scroll

The deck the action works on is already based on which knob you turn.

In general, if you want to have different actions on each side of the controller, you can also use device_side or action_deck queries to check which one is in use.
device_side 'left' ? loop_double : browse_scroll

Would use the left side knob for loops and the right side for scrolling.
 

Posted Thu 10 Dec 20 @ 11:17 am
However:
For DDJ-1000 specifically (and a few other controllers) you cannot assign separate commands on left or right side of the BROWSE encoder.
That's because the encoders themselves are tied together on firmware level.
This simply means that both encoders send the same MIDI message and therefore it's impossible to determine which encoder has been used (left or right)
 

Posted Thu 10 Dec 20 @ 11:58 am
a.zillePRO InfinityMember since 2019
Adion wrote :
The easiest is simply
loop? loop_double: browse_scroll

The deck the action works on is already based on which knob you turn.

In general, if you want to have different actions on each side of the controller, you can also use device_side or action_deck queries to check which one is in use.
device_side 'left' ? loop_double : browse_scroll

Would use the left side knob for loops and the right side for scrolling.


Hi,

device_side 'left' ? loop_double : browse_scroll
doesn‘t work.


loop_double and browser_scroll no longer work on any deck on the pioneer ddj 1000.

If I try this code
loop? loop_double: browse_scroll


... the loop double function on Browse_Enc Knob on deck 1 work, but the browser_scroll on deck 2 doesn‘t work, the knob also makes a loop_double function on deck 1?

I need dedicated access to the browse_enc knob from each deck (i.e. browse_enc1, browse_enc2,
browse_enc3,
browse_enc4)

Best regards
Alex

 

Posted Thu 10 Dec 20 @ 3:13 pm
a.zillePRO InfinityMember since 2019
PhantomDeejay wrote :
However:
For DDJ-1000 specifically (and a few other controllers) you cannot assign separate commands on left or right side of the BROWSE encoder.
That's because the encoders themselves are tied together on firmware level.
This simply means that both encoders send the same MIDI message and therefore it's impossible to determine which encoder has been used (left or right)


Oh, thank you for this Information!
And there is no possibility to assign the knobs per deck e.g. in the xml definition of the ddj?

this is really stupid.
especially when controllers have relatively few buttons to configure, you have to come up with dual functions for each deck.

is there another idea to map a loop move function per deck with an active loop on a rotary control on the ddj1000?

 

Posted Thu 10 Dec 20 @ 3:26 pm
locoDogPRO InfinityModeratorMember since 2013
if you were willing to sacrifice a button you could create a software shift
let's say slip_reverse
device_side 'left' ? set '$myShift' 1 while_pressed : set '$myShift' 2 while_pressed
then your encoder
var '$myShift' 0 ? browser_scroll : var '$myShift' 1 ? whatever for leftside : whatever for rightside
 

Posted Thu 10 Dec 20 @ 4:47 pm
Not sure exactly what you wish to do with the loop.

The platter easily controls the length of an open ended loop, continuously.. for the deck of that platter, though not quantized to the grid.

If needed to be quantized, maybe there is a way to script, that additional feature.
 

Posted Fri 11 Dec 20 @ 12:52 am
a.zillePRO InfinityMember since 2019
locodog wrote :
if you were willing to sacrifice a button you could create a software shift
let's say slip_reverse
device_side 'left' ? set '$myShift' 1 while_pressed : set '$myShift' 2 while_pressed
then your encoder
var '$myShift' 0 ? browser_scroll : var '$myShift' 1 ? whatever for leftside : whatever for rightside


Actually, I am concerned with the loop_move function, which is not (well) represented by Pioneer.
On the DDJ 1000 I have no way (found) to move an existing loop 1-beat quantized (which is stored in other controllers with dedicated controls).
So I'm looking for a good way to remap existing buttons on the DDJ 1000. One idea was to use the Pioneer's browse buttons (left and right) as soon as a loop is running on the corresponding deck. Unfortunately, this just doesn't work because the Pioneer's Browse_Enc button sends the same midi signal on the firmware side. This means: if a loop is running on the left deck, I can make the loop move (with the appropriate loop programming), but scrolling on the other deck with the other browse control no longer works. Because that then also controls the function loop_move of the first deck, or if you program it with a device_side = 'left' script, the right controller no longer works.
Please help me, if you have another idea how I can do a simple (i.e. without shift or pressing another button if possible) and quantized loop move on a DDJ1000.
 

Posted Fri 11 Dec 20 @ 7:01 am
Here's an easy solution:
Remap SEEK buttons (I guess that while a deck is in a loop you don't use those to "seek")

So:
Original code:
<map value="SEARCH-" action="seek -4" />
<map value="SEARCH+" action="seek +4" />
Remap to:
<map value="SEARCH-" action="loop ? loop_move -1 : seek -4" />
<map value="SEARCH+" action="loop ? loop_move +1 : seek +4" />
 

Posted Fri 11 Dec 20 @ 11:22 am
a.zillePRO InfinityMember since 2019
PhantomDeejay wrote :
Here's an easy solution:
Remap SEEK buttons (I guess that while a deck is in a loop you don't use those to "seek")

So:
Original code:
<map value="SEARCH-" action="seek -4" ></map>
<map value="SEARCH+" action="seek +4" ></map>
Remap to:
<map value="SEARCH-" action="loop ? loop_move -1 : seek -4" ></map>
<map value="SEARCH+" action="loop ? loop_move +1 : seek +4" ></map>


Thank you Phantom Deejay.
I tried the mapping with the search buttons.
Loop_move -1 works. But loop_move +1 dosn‘t work quantized. The loop always jumps not in beat positions and not + 1 beat.

I have decided to take the prime4 as my Controller for VDJ because of the easier way of mapping an more pre-defined knobs and buttons. For me the prime4 has an smoother mixing workflow.

Thank you for your help and ideas!

Alex
 

Posted Tue 15 Dec 20 @ 8:25 am


(Old topics and forums are automatically closed)