Squeezing multiple states into one modifier

SqueezingOn first sight the modifier architecture in Traktor has two limitations:

  1. There are only eight modifier slots available.
  2. The Modifier Conditions section in Controller Manager allows making a command dependent of the state of two modifiers only.

Depending on how complex your mapping is, it can easily happen that you run out of available modifiers. Furthermore, there can be situations where you need to make a command dependent of more than two modifiers. For example, you may wish to use two of the standard modifier values (M1 to M8) and additionally one of the extended modifiers (like "Is in Loop").

The good news is that you can overcome these limitations by using modifiers in a tricky way. This article shows how to squeeze more than one modifier value into one modifier slot. This instruction works only for modifier buttons that function as toggle buttons.

The Controller

To keep things simple I will use a very small controller with the following layout:

Controller

The midi commands for the buttons are written under each button.

The controller has two buttons to switch the active deck for the left side and the right side of the controller. The first button switches the deck focus between deck A and C and the second one between deck B and D. Then I have two Play/Pause buttons. Both Play/Pause button check the focus of the deck switch button and will affect deck A or C and deck B and D respectively.

In the standard way of mapping you would use two modifiers: one modifier for Deck Switch A/C and another one for Deck Switch B/D. In order to save modifiers I will track the status of both deck switch buttons in one modifier.

 

Defining the States and the State Transistions

I start by establishing how many states the two deck switch buttons can have in combination. As each deck switch button has two states, I will need to program one modifier that can track the following 4 states/modes:

  1. Left is deck A – Right is deck B
  2. Left is deck A – Right is deck D
  3. Left is deck C – Right is deck B
  4. Left is deck C – Right is deck D

I need to establish all possible combinations of these two buttons and give them a corresponding number between 0 and 7.

Status ValueDescription
0Left is deck A – Right is deck B
1Left is deck A – Right is deck D
2Left is deck C – Right is deck B
3Left is deck C – Right is deck D

Then I map the modifier commands. I will have to program all possible transitions for each button.

The transitions are:

  1. If in mode 0:
    I get to mode 1 if right deck switch is pressed and to mode 2 if left is pressed
  2. If in mode 1:
    I get to mode 0 if right deck switch is pressed and to mode 3 if left is pressed
  3. If in mode 2:
    I get to mode 3 if right deck switch is pressed and to mode 0 if left is pressed
  4. If in mode 3:
    I get to mode 2 if right deck switch is pressed and to mode 1 if left is pressed.

This means I have to program 8 modifier commands for this 1 modifier to work (had I used two different modifiers to do it I would have made 4 commands so this will double our number of modifier commands).

I normally write down all transitions that need to be mapped in a list like this:

0→1
0→2
1→0
1→3
2→3
2→0
3→2
3→1

And then cross them out as each command is made so I don’t forget any.

 

Mapping the Modifier Commands

The first command will then look like this:
Modifer Mapping

Second like this:
Modifer Mapping

Third like this etc.
Modifer Mapping

I continue this system until all 8 entries are mapped.

 

Mapping the Play/Pause Buttons

I then continue with the play buttons:

Each button needs to be mapped to the Play/Pause mapping command and the execution needs to be dependent on the 4 states I defined earlier.

For the left play button it’s like this:
0: Play on deck A
1: Play on deck A
2: Play on deck C
3: Play on deck C

For the right play button it’s like this:
0: Play on deck B
1: Play on deck D
2: Play on deck B
3: Play on deck D

Here an example with the first command:
First Play Button

Once you are done the Assignment Table should look as shown in the following figure:
First Play Button

As you can see, the downside of this technique is that it will heavily increase the number of commands needed for a mapping. However, the big advantage is that you can greatly expand your Traktor mappings.

JeppeAuthor: Jeppe Skafte Johansen aka DJJJ
Jeppes Facebook page
Jeppes YouTube channel
Published: August 23, 2011

 

 

Share

5 Comments

Robin Loops
wrote on August 23, 2011 at 9:51 PM
Nicely explained...

Where this really tricky is mapping the lights to work with these kind of 'composite' modifiers. And what ends up happening is that sometimes lights will 'stick' on. But, this is a limitation of Traktor and/or the controllers themselves and not the mapping. Usually toggling the modifiers will 'unstick' the lights...

Wishlist for Traktor pro 3 - 3 modifier conditions and an AND/OR option...
i.e.M1=1 OR M2=1 (instead of and only)
 
Jeppe Johansen
wrote on August 23, 2011 at 9:58 PM
I use this a lot on my mappings and have even squeezed 3 modifiers into one on my current (Traktor Pro2 and Numark Mixtrack Pro), but I have never experienced a sticky led.

DJJJ
 
Jeppe Johansen
wrote on August 24, 2011 at 8:15 AM
If you choose to squeeze two modifiers in to one slot, there should be nor problem defining both and or, nand, nor ex-or and ex-nor if you like.
 
iron
wrote on October 7, 2011 at 2:38 PM
already made a feature request for 3rd modifier condition.
Would like to see other people doin the same...

Would also be nice feature to have output standarts like blink...
 
Lalaine
wrote on December 24, 2011 at 1:22 PM
Real brain power on display. Thanks for that asnewr!
 

 

Leave a comment

  Name

  E-Mail (will not be published)

  Website