Is this possible in Traktor Pro (mapping question)

Home :: Post and find Controller Mappings :: Is this possible in Traktor Pro (mapping question)Reply
Is this possible in Traktor Pro (mapping question)
Posted on: 13.10.2010 by Layla Portela
Hi, long time lurker, first time poster. Have to say this is a brilliant site, learned a few things that have totally re-defined how I look at my midi controller and its compliment to my DVS setup.

I currently use a xone:2d but this idea could be applied to just about any button matrix type of controller.

Okay picture this

X - X - X - X
X - X - X - X
X - X - X - X

These are the 3 rows of buttons below the faders on my 2d. What I want to do is as follows:

I want to assign a series of commands to the buttons to control the 4 decks, but I want to do it in a clever matrix kind of way that forces me to hold down a button for each deck. I am kind of a clumsy ass and between beatmatching, looking for tracks and jumping up and down like a loon I frequently hit the wrong button, especially since on the 2d the buttons are kinda close to each other and there is little if any visual and tactile feedback letting me know my finger is on the right button.

Basically, if I wanted to have the buttons control deck A I would hold do this:

X - X - X - X
X - X - X - X
A - X - X - X

this switches focus to deck A and while held down creates a shift modifier so that all the other buttons only affect deck A.

If I wanted to control deck B I would:

X - X - X - X
X - X - X - X
X - B - X - X

This switches focus to deck B and reassigns all the buttons to only affect deck B.

So far the construction works but the problem I run into is that I cannot seem to create a set of modifier conditions that stops the lower buttons from reassigning deck focus when I press them. I can't bury the deck focus select under a modifier condition because that would make it impossible to switch deck focus without pressing something else, which is too many steps.

Basically I want to be able to hold down one of the lower 4 buttons, which would then switch deck focus to the appropriate deck and then open all the other buttons for various deck controls.

One work-around would be to sacrifice the lower row of buttons to only do deck focus select and create a hold based shift modifier, but this seems like a cop out and forces me to lose buttons, making me a sad panda.

Another work around (which I haven't tested yet because I haven't had time) would be to create a button press type shift modifier that switches deck focus, I suppose this frees up a hand but creates danger when my hands get too close too the buttons. I kinda wanted the artificial crutch of being forced to hold down one of the buttons to stop me from doing something idiotic in the middle of track playing. I also don't know if this will work since I haven't tried it yet.

Anyway just throwing out brainwaves and maybe someone has a way to make this work or can suggest something creative that is simpler to implement. I sometimes tend to look for a very complicated solution to a problem when the simple answer is actually staring me right in the face.
Layla Portela
13.10.2010
Hi, long time lurker, first time poster. Have to say this is a brilliant site, learned a few things that have totally re-defined how I look at my midi controller and its compliment to my DVS setup.

I currently use a xone:2d but this idea could be applied to just about any button matrix type of controller.

Okay picture this

X - X - X - X
X - X - X - X
X - X - X - X

These are the 3 rows of buttons below the faders on my 2d. What I want to do is as follows:

I want to assign a series of commands to the buttons to control the 4 decks, but I want to do it in a clever matrix kind of way that forces me to hold down a button for each deck. I am kind of a clumsy ass and between beatmatching, looking for tracks and jumping up and down like a loon I frequently hit the wrong button, especially since on the 2d the buttons are kinda close to each other and there is little if any visual and tactile feedback letting me know my finger is on the right button.

Basically, if I wanted to have the buttons control deck A I would hold do this:

X - X - X - X
X - X - X - X
A - X - X - X

this switches focus to deck A and while held down creates a shift modifier so that all the other buttons only affect deck A.

If I wanted to control deck B I would:

X - X - X - X
X - X - X - X
X - B - X - X

This switches focus to deck B and reassigns all the buttons to only affect deck B.

So far the construction works but the problem I run into is that I cannot seem to create a set of modifier conditions that stops the lower buttons from reassigning deck focus when I press them. I can't bury the deck focus select under a modifier condition because that would make it impossible to switch deck focus without pressing something else, which is too many steps.

Basically I want to be able to hold down one of the lower 4 buttons, which would then switch deck focus to the appropriate deck and then open all the other buttons for various deck controls.

One work-around would be to sacrifice the lower row of buttons to only do deck focus select and create a hold based shift modifier, but this seems like a cop out and forces me to lose buttons, making me a sad panda.

Another work around (which I haven't tested yet because I haven't had time) would be to create a button press type shift modifier that switches deck focus, I suppose this frees up a hand but creates danger when my hands get too close too the buttons. I kinda wanted the artificial crutch of being forced to hold down one of the buttons to stop me from doing something idiotic in the middle of track playing. I also don't know if this will work since I haven't tried it yet.

Anyway just throwing out brainwaves and maybe someone has a way to make this work or can suggest something creative that is simpler to implement. I sometimes tend to look for a very complicated solution to a problem when the simple answer is actually staring me right in the face.
Layla Portela
14.10.2010
Yul, thank you so much for that detailed explanation! I'm still learning the intricate complexities of programming controllers in logic and while I've made significant strides in wrapping my head around the various modifiers and logic states its still all a bit greek to me sometimes.

I believe I get it, I unfortunately have not had time to test it in practice (damn you work!) but my visual representation of your explanation on paper that I made would indicate that it should work.

I see your point about having a 'moving' set of buttons along the bottom row (the other two rows would never change but be deck specific based on bottom row button press) and I will have to test it further to see if there is any logic to working this way.

Again thanks for the very detailed explanation, very much appreciated.
Kecia Wnukowski
13.10.2010
create a modifier W (put on "hold") linked to your row of buttons that will have a value of (those modifier states would replace your deck focus select method)
- o: (no button pressed)
- 1: button A
- 2: button B
- 3: button C
- 4: button D

Now create for the same row of buttons what they will act upon depending on the value of the modifier:

Button A
- modifier X= 1 if modifier X= 0
- function ? if modifier X=2 assigned to deck B
- function ? if modifier X=3 assigned to deck C
- function ? if modifier X=4 assigned to deck D

Button B
- modifier X= 2 if modifier X =0
- function ? if modifier X=1 assigned to deck A
- function ? if modifier X=3 assigned to deck C
- function ? if modifier X=4 assigned to deck D

Button C
- modifier X= 3 if modifier X =0
- function ? if modifier X=1 assigned to deck A
- function ? if modifier X=2 assigned to deck B
- function ? if modifier X=4 assigned to deck D

Button D
- modifier X= 4 if modifier X =0
- function ? if modifier X=1 assigned to deck A
- function ? if modifier X=2 assigned to deck B
- function ? if modifier X=3 assigned to deck C

Now add the functions you want to set up to all your buttons (ie I mean the top two rows), depending on the state of modifier X (so 0,1,2,3,4) - remember to choose the good assignment corresponding to the modifier value .
The good thing is that you get exactly what you wanted (being obliged to hold a button to choose to act on a deck, still get the use of the three other buttons when one is pressed on your last row) AND you also get in bonus a natural state of functions for your top two rows when modifier X=0 (no button pressed), you can use this layer for more generic functions for example (ie not 'deck orientated')

Get it?

But to be honest with you I wouldn't recommend to do what you want for the last row of buttons, just use them like I stated above but without duplicating them with functions. I personally believe that having in this case 3 different functions that will 'move' - geographically speaking ^^ - isn't very pragmatic. You open a door for potential mistakes. Or not, you'll see with experience with this layout.

Hope this helps.


ps: you can do much more complex than that in terms of mapping.
Dana Ordinario
13.10.2010
This will work with a lot of coding it does run into problems thou if you need to do more than a single thing at a time. Sometimes i'm fiddling with EQ while tweaking effects and if I needed to hit another button to tell my controller which deck to do all of that on it wouldn't work.

But it can be done just do what I do and write everything down exactly what you want your controller to do. Then start with the easiest stuff first on the first layer. Meaning anything you want the controller to do with no shift buttons or hold buttons. Then work on the sub layers making sure to test everything as you go especially commands at the sub layers. You will run into a lot of problems of programming it right but not putting in an "Off" modifier or something like that.

Make sure you write down what your doing and try to write in the comments section of Traktor to help you remember what does what exactly.

<< Back to Post and find Controller MappingsReply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy