MIDI Mapping 101: The Traktor Modifier (Re-Explained)

Have you ever been inspired with an amazing idea of how to take your MIDI controller to the next level by making your own custom super DJ mapping only to find yourself confused, frustrated, and ultimately stumped when dealing with Traktor and its Controller Manager? Chances are, some of you got scared off before even attempting it. Today we’re going to break down the basics of Traktor mapping in a simple and easy-to-digest manner.

For the most part, it primarily all comes down to one key mapping feature in Traktor: the MIDI modifier. If you have some mapping experience, this may not be a revolutionary lesson, but don’t write it off just yet. The Traktor modifier is a fundamental component to any mapping beyond one-to-one function assignments, and there are often a lot of misconceptions in exactly how these modifiers work.


Put simply, a modifier is a basic variable. You know—like you probably learned in algebra, with some example like, “X+1=3. So what is X?” But more specifically, the Traktor modifier is a variable that can only be an integer value ranging from 0 to 7. Not only that, but for each mapping in Traktor, there are only a total of eight modifiers to work with, each named with an M (for modifier) in front of the number, like M1, M2, M3…M8. Don’t pay too much attention to the number name of the modifier, though, as that is simply to tell them apart. M1 doesn’t inherently act any different than M2 or M8, and there is no order of operations that has to do with their numbering scheme. Another important thing to know is that all eight of these modifiers are initialized to a value (also known as a “state”) of 0 when opening Traktor.

To get a better visual understanding of what we are working with, we are going to take a look in the Controller Manager of Traktor’s preferences and see the line of Modifier States above the Assignment table. This is a very important place of reference as it will always show the current state/value of each of the eight modifiers within the selected mapping. And see, as mentioned in the paragraph before, all the modifiers default to a value of 0 when starting up Traktor.

Now, if you’re thinking, “I don’t get it. How do these variable modifier things that have number values in them help me to make my controller do crazy DJ things?” Well, take a deep breath and be patient, we’re getting there. The next key element to utilizing modifiers in your mapping is knowing how to use modifier conditions on the commands in your mapping. This is really important, as it basically tells Traktor to only run certain mapping commands at certain times or in certain scenarios, which allows a button or knob to have more than one dedicated function. So, as you can see below, each mapping command has the capability of having up to two modifier conditions.

The function of these conditions is that they tell Traktor that when the assigned MIDI data is received, look to see if the modifier condition is true (which in the case of modifiers means when the selected M1-M8 modifier is equal to the selected state number 0-7) and if so, then carry out the mapping command. If you happen to be familiar with programming at all, you can think of these modifier conditions as an If/Then statement.

For an example (referencing the picture above), if M1 is equal to 2 when the Ch.3 C3 MIDI note is received, Traktor says to go ahead and carry out this command (in this case to toggle Sync on Deck A). However, you can also see that M1 equals 0 in the Modifier State table above. That means that no matter how many times you push the button that is sending out the MIDI note Ch.3 C3, the “Sync On” command won’t run because Traktor looks to see what the state of Modifier 1 is before thinking to run this command, and once it sees that M1 is not 2, Traktor is like, “Sorry, buddy—no can do. I’m on strict modifier conditional orders. If M1 becomes 2 and you press that button again, then we can talk (and actually carry out the command).”

In essence, the use of modifiers and modifier conditions is what enables any button, knob, or wheel to have multiple functions in different modes, settings, or while holding the (oh-so-common) Shift button. And just to be clear, generally there is nothing that differentiates the button used as a Shift button from any other button on the controller (except in some controllers where the button doesn’t send out MIDI but causes everything else to send out different MIDI data while held—but that’s a whole different story entirely relating to firmware). The button designated to be Shift is just set up to trigger a modifier, and all the Shift-related functions simply look for the associated modifier condition to be true before carrying them out.


With that said, let’s go about showing you how to create a Shift button in your own mapping as an example of how to put modifiers and modifier conditions to good use. I’ll break it down here into a few easy-to-follow steps. Alternatively, you can reference the video above for a more visual tutorial.

Step 1: In Traktor’s Controller Manager, create a new mapping by clicking “Add…” and select “Generic MIDI.” Have a MIDI controller ready and plugged into your computer via USB. Make sure your controller shows up in the In-Port section and that the In-Port is set to All Ports or to your specific device.

Step 2: Click “Add In…” and go down to select “Modifier” and then any Modifier #. In this case, we’ll just use Modifier #8.

Step 3: Click “Learn” (Learn tells Traktor to listen to whatever is in your In-Port for incoming MIDI signals) on your new Modifier command and click whatever button on your MIDI controller you want to be Shift. The MIDI signal for this button should now show up next to the Learn button. Turn off the Learn button (so you don’t accidentally press something else and reassign the command).

Step 4: For your modifier command, change the “Type of Controller” to “Button,” the “Interaction Mode” to “Hold,” and the “Set to Value” to “1.” Try pressing the button now while watching M8 in the Modifier State table. When you hold down the button, M8 should be 1 and when you release the button it should go back to 0. Pretty cool, huh? If you’d like, try changing the “Set to Value” to another number and notice how it works exactly the same.

Let’s put in some mapping commands now to utilize our brand-new working Shift button. The most common shift-friendly command that comes to mind is for Setting/Triggering a HotCue Point and then making the Shift function of it to Delete that HotCue.

Step 5: Click “Add In…” / “Track Deck” / “Cue” / “Select/Set + Store HotCue.” Decide on a new button to Control HotCue1 (or any HotCue for that matter) for Deck A and then press “Learn” on the command and hit your button. Turn “Learn” off. Set the “Type of Controller” to “Button,” the “Assignment” to “Deck A,” and the “Set to Value” to “HotCue1.” Lastly comes the important part. Set a Modifier condition on this command to be M8 = 0 (just select M8 in the Modifier listbox and 0 in the Value listbox).

Step 6: Click “Add In…” / “Track Deck” / “Cue” / “Delete HotCue,” turn on “Learn” and assign it to the same button that you used for Step 5. Make sure the “Type of Controller” is “Button,” the “Assignment” is “Deck A,” the “Interaction Mode” is “Direct,” and the “Set to Value” is “HotCue1.” And now, to make this command only work when Shift is being held, select a Modifier condition of M8 = 1.

And voila! You can now Set and Delete Cue Points using your own made Shift button. You can repeat steps #2 through #6 above to do this for up to all eight HotCues for each Deck if you like. Sure, MIDI mapping can be repetitive at times, but the end result is well worth the work.

If along the way you were confused about what the different mapping options like “Interaction Mode” or the options at the bottom of the window do, don’t worry. Those things just take a little bit of time to learn; let us know in the comments below if you’re interested in more detail, and we can go further in another lesson.


So, you have your HotCue buttons that change functionality with your Shift button, but you also want to make the LED under the button light up when there is a HotCue set? No problem.

First off, we need to make sure our “Out-Port” on the mapping is set to “All Ports” or your specific Controller to ensure that Traktor knows who to talk back into in terms of sending MIDI. (Think of it like Traktor is going to tell the button on your controller to light up and the Out-Port sets the connection between the two.)

Select “Add Out…” / “Track Deck” / “Cue” / “HotCue 1 Type.” Click “Learn” and press the same button you used before to Set/Trigger/Delete HotCue1 for Deck A (if you’re using a really old version of Traktor and can’t press Learn, you’ll have to manually select the Midi Channel and Note through the list dropdown). Change the “Assignment” to “Deck A.” The following options should be set by default, but just in case, the “Controller Range” should be from -1 to 5 and the “Midi Range” should be from 0 to 127 with Blend checked on (don’t worry what these range values all mean for now; they can differ for each command and take some learning).

And that’s it! You’ve now set up a single button to Set or Trigger a HotCue Point, Delete it with the help of your new Shift button, and set your HotCue button to light up when there is a HotCue marker stored for visual feedback.

If you want to learn more, or you have something specific you want to see covered, let us know in the comments below.

how to midi mapmidi mappingtraktor modifierTraktor Tips
Comments (62)
Add Comment
  • Jesse Basurto

    I’m having a lot of difficulty with mapping LED output for my traktor Kontrol z2. I’m using a late 2010 MacBook with traktor pro 2 and would really like to customize my own midi mapping. Also having difficulties accessing my cues 5-8. When I switch to sample c deck and hit a cue it loads the song into deck c and if I hit it again it’ll play the song. My main goals is to get cues 5-8 mapped to bank c and have the LEDs change colors when switching through banks. If anybody is willing to school me on a some midi mapping 101 I’d gratefully appreciate it! Thanks in advance guys!

    • Maiakaat

      changing LED colours seems to be a complete nightmare to do, I’ve managed it once and I’m not convinced it’s working every time, I’m trying to do something similar now and I have wasted hours many many hours

      There seems to be a limited set of scenarios you can get it to work, and when you think you’be got it, you reload the deck and software to be sure and its gone again

    • Dre Morningstar

      A controller will have a specific range of values from 0 to 127 that controls an LED’s color. For instance, 0 = off, 1-20 = red, etc. You will find this in the product documentation. When you set the midi out for that key to the modifier state that equals bank C, you set the color for that value. So if modifier #2, state 3 means that bank C is highlighted, set the Out from that to that value (ie: 15 for red).

  • Dasilluminati Vj Forte Jones

    Hi there i have modified the all in one of traktor pro 2 osc template, everything works but the play button on deck a will not work I’ve tried to look at deck b play button to spot anything different but no joy I’ve also given the button a different midi channel form channel 1 cc 90 I’ve put it to the next available space in the controller manager channel 2. Cc16 but still no joy. I have noticed that the play button works to pause once the track is playing but will not tribute it to play initially. Any ideas. Cheers

  • Joe K

    I have a DDJ-T1 controller, and my right play button is not working consistently well. How do I program my cue button to be my play button since I don’t use it very often.

  • Dj Richi AC

    I would like to know how to put 2 or 3 commands one after the other in an specific order. For example when the deck is stoped want to save a cue point and then automatically press play with one button. Is there a way using modifiers?

  • Simone Coccato

    Hi everyone! I have a F1 controller, 2 remix decks (C and D), and I want to assign each pad a different cell of the four slots. Finally I want traktor to enable this function only for the deck selected. What I’ve done now is that both decks (C and D), play at the same time when I press Pad 1 for example. I only want to play the selected deck!

    I’m sure is something to deal with modifiers but I don’t know how to figure this out.

    If someone can help me i will really appreciate it, I’m struggling since days into that..



  • Nick Page

    Would like to know if it’s possible to use a modifier button to switch a 2 channel controller/secs to control decks c/d or remix decks.. Great tutorial ?

  • Gaso

    I was just wondering, is it possible to set cue and play buttons in that manner, that when play is pressed and the led is lit up, when i hit cue the play button led shuts off? I have an akai mpk mini.

  • Traktor Midi Mapping: How to Make Instant Gratification Style Effects & Play Them Musically | The life and times of a Flashflooder

    […] Pretty cool, huh? That very well could have been something that you never realized was going on in these mappings but it definitely has a profound effect on being able to play the effects musically, the way your brain and hands naturally intend to. And remember, this concept is not specific to the Midi Fighter but can be applied to any MIDI controller from just 2 buttons up to 7 buttons in the case you want to be able to play that many different rates or styles of one selected effect. And in case you were wondering, the reason that 7 is the limit is that Traktor MIDI modifiers only have integer values ranging from 0 to 7, remember? […]

  • How To Create Instant Gratification-Style Effects for Traktor and Play Them Musically | DJ TechTools

    […] Now that we know how to set up some modifier commands to track how many buttons are being held down, we need to add some modifier conditions to our existing effect/button on commands so that they work when you are holding one button down. To do this, we are going to go to each effect/button on command and add a modifier condition of whatever modifier you used to track the button presses (M2 as shown in the example video) and set it to 0. This will turn the effect on when you don’t have any buttons held. We are also going to need to duplicate all of these effect/button On commands and make another with the modifier condition equal to 1. This condition is for the case when you only have one button left held and release it to turn off the effect. Pretty cool, huh? That very well could have been something that you never realized was going on in these mappings but it definitely has a profound effect on being able to play the effects musically, the way your brain and hands naturally intend to. And remember, this concept is not specific to the Midi Fighter but can be applied to any MIDI controller from just two buttons up to seven buttons in case you want to be able to play that many different rates or styles of one selected effect. And in case you were wondering, the reason that seven is the limit is because Traktor MIDI modifiers only have integer values ranging from 0 to 7, remember? […]

  • Dan Schmidt

    do an advanced mapping article next. I want to see how I can use modifier values as a selector, like with DJTT’s S4 and S2 effect mappings. Basically just some examples of crazy mappings and how they work.

  • Robotic Monkey

    OMG thanks I wanted to do this on my launchpad weeeeeeee

  • A-Dag-Io

    Very good article indeed, we all would love to learn more about modfiers
    in the near future, as they are one of the last white spots on our
    mapping scenery. Unfortunately there are hardly any tutorials to find
    that really help you understand the topic, especially when your english
    is not that perfect. Thanks-a-lot!

  • Autrelle Holland

    Is it possible to map the SHIFT button on a Z2 mixer with the normal “shift” function as a modified factory mapping?

  • Joey

    I’d like it if someone could enlighten me on the the blend option and the -1 to 5 and 1 to 127 options and all that in the out commands for LEDs. I would love to have different colors on one button telling me whether it is a loop or a cue point or in the remix decks whether its a loop or a one shot. That would be amazing!!

    • weR!0T

      The Controller Range (the -1 to 5 option) changes based on the type of output. For example… if you select the output for Hotcue 1 on Deck A the options for the Controller Range will be -1 to 5 which represents all of the hotcue types (-1 = none, 0 = cue, 1 = Fade In, 2 = Fade Out, 3 = Load, 4 = Grid, 5= Loop). That being said, setting the Controller Range to -1 min 5 max, means that the LED will activate for every hotcue type (unless otherwise specified in the Modifier Conditions). If you were to set the Range from 0 min 5 max the LED output will only activate if the Hotcue is set to one of the Hotcue types in that range. Now, if you set the output for a Modifier value the controller range is 0-7 representing the number the Modifier can be set to. So if you set the range from 0 Min 0 Max it would mean the LED output will only turn on if the Modifier is currently set to 0 while trying to send the LED output.

      The Midi Range (the 0 to 127 option) is the color range you send to the controller when the output is active/inactive. Now this option varies by controller as most controllers have different available colors. For me this took trial and error to figure out all of the colors. I was using the Midifighter 3D which has 20ish available colors so I suggest writing it down somewhere so that you can reference it when you need to map output colors on your controller. Anyway… the Range operates in the following way, (this might be a bit wrong as I had to learn on my own since I couldn’t find a lot of specific information on this topic) the MIN setting in the Midi Range sets the value if the output is not active and the MAX sets the value if it is active. On all controllers 0 = Off and 127 = On, if only the 2 choices are available. If you have RGB colors available, the color you are looking for will be a number between 1 and 127 (this will be where trial and error come in unless you can find some nice person who wrote it down for your controller).

      Hope this helps…

  • donn 1

    ok patrick je suis preneur car fait un bon moment que je cherche a faire cela

  • donn 1

    Great indication for the mapping;
    But I I shall have liked knowing how to affect(allocate) a touch of keyboard or other for an effect preset to tow. Ex: allocate the touch D of the keyboard to the delay effect and that I can settle(adjust) parameter of effect before affecting(allocating) the touch D of the keyboard of kind has every time I go rested(supported) on the sideline D will activate(start) the effect delay as I have him(it) paramètre.est-ce possible? If yes how to take me there.

  • donn 1

    super les indication pour le mapping;

    mais moi j’aurai aimé savoir comment affecter une touche de clavier ou autre pour un effet préréglé sur tracter

    . ex: affecter la touche D du clavier à l’effet delay et que je peux régler les paramètre d’effet avant d’affecter la touche D du clavier de sorte a chaque fois que je vais appuyé sur la touche D déclenchera l’effet delay comme je l’ai paramètre.est-ce possible?si oui comment m’y prendre.

    • Patrick

      C’est bien possible! Apres avoir cliqué sur “Learn” tu dois alors appuyer sur la touche D sur ton clavier, ca va te donner l’option de modifier les parametres qui te permetteron de declancher l’effect delay.
      Je ne me souviens pas trop bien de tous les details mais si t’as besoin de plus d’infos je peux te repondre plus tard.
      P.S. Je suis actuellement au boulot 😀

  • zzzuperfly

    i am sure i should know this – the modifiers are not global right? i mean they are unique per mapping?

    • zzzuperfly

      and the twister is amazing but my laptop is not handling the load 🙁

    • Flashflooder

      Yes, you are correct. Modifiers are mapping specific and not global.

  • HighBreed

    Very useful and well writte article! I’d like to read a mapping guru opinion on how to use the modifiers state beyond 0 and 1. I think we all tend to use them just to give a button 2 different behaviours and that is perfectly explained in this article, but i’m sure that there is an entire world of mega tricks we can do with more states!

    • Rayalon

      You could have two buttons (or more) trigger a new Modifier when both are pressed.
      A good example is the Roll in the Midi-Fighter Gratification mapping.
      When holding all four Roll pads – a turntable break is engaged.

  • Rayalon

    One thing that I hope that will arrive in Traktor Pro 3 – is a wider variety of options under “Modifier Conditions”, and also the ability to have a specific button “light-up” (Toggle/Hold) without any specific command assigned to it.

    • weR!0T

      That second bit, could you explain that a bit more? If you are just looking for a button to light up if it is held or toggled that is pretty easy to do with a modifier but I am not sure I fully understand what you are looking to do… maybe you could clarify a bit for me…

      More modifier conditions would be incredible though…

      • HighBreed

        Sure is easy but is always one less modifier state that one could use for other more useful things. I think it’s not that difficult for NI to hardcode in some type of commands that if the button has the led output available than it’s automatically lit up

        • weR!0T

          I see what you are saying now. But honestly with the number of modifiers and the number of available values for each of those modifiers I find it pretty difficult to run out of available modifiers. The one thing I can think of that would come in handy is having more than 2 modifier conditions available to set for each command. This would vastly expand the number of times a button could be reused based on various modifier conditions.

      • Rayalon

        If I want a button to light-up while I press it, I do the following:
        Map the button to M1 (for example):
        Type of controller = Button
        Interaction mode = Hold
        Set to value = 1

        LED MAPPING:
        Add out –>Modifier #1
        Map it to the same button
        Controller Range = Min =1 Max=1.

        Pretty long and complex. It can be simplified in my opinion 🙂

        • weR!0T

          If they included a check box for toggle/hold buttons to set LED output while button is held or toggled, that would be killer. Eliminating the extra step of the separate LED output mapping and since the MIDI note event is tracked in the software already it would be easy to add that tracking by default to toggle/hold button event you are tying to a command.


      ye i agree but i am pretty satisfied i mean with the twster i can have basicly my whole traktor controlls in just that

  • mikefunk

    How about new mapping software form NI?

    Current way how it works is beyond bad. It’s really bad and NI should feel bad.

    Not mentioning how it works but no keyboard support in the menu? Everything must be done by a mouse? Feck that!

    NI – Please, simply fix how mapping works in Traktor and make life easier for everybody!

    • weR!0T

      I really don’t find it to be that troublesome… Keyboard shortcuts in the menu would make mapping a bit faster but I really don’t find it to be that big of a limitation.

      The learning curve can be a little steep but once you get through that, mapping any and EVERY controller is pretty easy.

    • Flashflooder

      There is third party software called Xtreme Mapping that can make mapping a bit easier but the interface is still similar, just with smart functions.

      And yeah, Traktor’s controller manager can be a bit frustrating initially but it is still pretty powerful compared to other DJ software’s mapping capabilities.

  • AwwDamn!

    LED Out is such a pain. Simple for regular stuff, but what about RGB pads like on Maschine? It’s a nightmare!

    • weR!0T

      This was the hardest thing to learn about mapping controllers… color coded hotcues on the midifighter 3d taught me how to drink heavily out of frustration.

    • Rayalon

      All you have 2 do is play with the “Controller Range”. Once you know the value for a specific colour – it’s a breeze.

  • Paul

    I’m an actual rocket scientist (seriously) and I still find MIDI mapping insanely difficult. Does anyone know how I would go about re-mapping the ‘flux’ button on my Traktor Z2 to become a button that toggles between hot cues 1-4 and 5-8?

    • weR!0T

      Well… you can put the Z2 into “Midi Mode” (Shift + Settings) which will allow you to remap it, however the side effects will include losing integrated functionality with Traktor… This means that to remap one button you will have to custom map the entire controller. Might be fun project, but it might be more than you want to take on right now.

    • Xtian317

      This functionality is already built-in to the default mapping. Under the Secondary Cue setting of the Z2 preferences, one of the options is to control hotcues 5-8.
      To access the secondary function, hold shift and press the deck focus button (above the hot cue 1 button).

    • Autrelle Holland

      Actually if you just press “A”or “B” again (assuming you’re already using deck A/B respectively), you’ll see a flashing light output that lets you know that “1-4” are now “5-8” in the default mapping. The only thing I added was “SETTINGS + TURN LOOP” to do a nice fine adjust to make up for the lack of pitch faders, and I’ve remapped the REL/ABS buttons to work as PLAY/PAUSE and modified to work as “CUE” for each deck. I would rather map the SHIFT button for these modifiers though. Any advice?

    • Marquee Mark

      Please give credit to the right person – Flashflooder wrote this article, not Ean! 🙂

      • Quick Switch

        I totally stand corrected–my apologies. Proper props to the famous Flashflooder and the DJTT team. This article has made mapping creation far less intimidating.

  • Christopher Robertson

    I would like to hear of some other uses of modifiers, other than a shift key.

    • weR!0T

      I have used the modifiers to create pages of macro’d FX buttons on my Midifighter 3D. Effectively creating 4 different 4×4 grid of mapped effects that I can use on the fly.

      I have also used the Shift key technique with FX combos. In my case, when triggering one effect there were times when I wanted to alter parameters on that effect with other buttons while I still had the first effect triggered. So the other buttons that I used to change parameters on the first effect also trigger other effects so using a modifier can disable those effects and instead allow them to have other uses.

      I have plenty of other examples… I should probably just post some of my mappings so that you guys can check out some of the more interesting uses for modifiers.

    • Flashflooder

      Any specific requests? This is just an introductory lesson into the world of modifiers but you can definitely do a lot lot more with them.

      • weR!0T

        I think a great tutorial would be controlling deck focus with modifiers. I have used this technique on a few different controllers and it can be incredible valuable for people with limited controller surfaces.

      • Chris

        I’d love to know how to create the lfo type effects – the Pioneer DJM T1 allows for it, but I’m not sure if that’s a hardware-specific function or if it’s possible with modifiers. I basically want to press a button and have the effect knob modulate itself, and sync it to the tap tempo. Possible?

  • Shawn

    One thing I’ve always wondered in regards to mapping… If I map multiple commands to a button or knob, Do they all get executed:
    1) simultaneously
    2) the order in which i mapped them (chronologically)
    3) the order they appear in the mapping screen
    4) some other method?

    • Kanton

      They will all be triggered simultaneously unless you use a modifier(s). The order in which you mapped them or the the order in which they appear on the mapping list is irrelevant.

    • Flashflooder

      Yes, like Kanton said, they get triggered simultaneously but there does not seem to be a clean and consistent way to get a specific order of operations for simultaneous functions. At times there may seem to be some type of hierarchy order but I have not found a surefire way to control this, which would be really helpful in situations especially in respect to changing instant effects (hint, hint: NI)

      • flufftronix

        The only function I [accidentally] came across for this is if you use the invert function on Button – Direct, this command will trigger specifically when you release the button.


    very helpful about the leds but you guys already have 3 articles about modifiers lol. Still awesome. THE TWISTER IS AMAZING BTW

  • sandeep

    Good article.
    I always thought mapping to be ROCKET SCIENCE 🙂