Midi mapping for Traktor - a very general discussion

Midi mapping for Traktor - a very general discussion

Hello all,

I’m a complete beginner to Traktor, so I thought I would make a threat to talk about midi mapping and Traktor for those of us out there that have questions.

As a DJ, my DVS currently is Serato. I decided I’m going to switch over to Traktor, because from the look of things, it can do everything Serato can do, with more capabilities. I guess now with the bridge out, it levels the playing field is many ways, but I produce with Ableton and don’t think I would feel comfortable to DJ with it.

I’ve never done midi mappings before, except for my Dicer with Serato, but the functions on Serato are very simple. I’m quite used to coding, and at work, I write macros for Excel (called Visual Basics for Excel).

I recently downloaded the midi fighter mapping for Traktor, and have been enjoying playing around on it, but some things don’t seem to be working right, and I would just like to know what’s going on in the background so I can get an understanding of what is actually going on.

What I’d like to do is to take functions from my favourite pieces of gear out there, and apply it to a custom midi fighter mapping. So how could I go about doing this? Where do I start when creating a mapping? Any chance one of the Mod can take us through the mappings for the midi fighter that can downloaded from the site?

Thanks in advance

-PL>Y

Sorry, but I have to bump this one up.

Mods, if your reading, there seems to be a need for a bit of an in depth discussion on Midi mapping. From the DJTT tutorial videos on how to set up Traktor and midi map, the only thing Ean touches on is that Midi mapping is “tedious and time consuming” and therefore, it’s a lot easier to just download the TSI file and plug and play.

For those of us out there like me, we’d like to know how to dig down and actually understand how the mappings work.

Maybe if you can take us through how the Deckalize mapping is done, for example, we can get a better grasp of how to make our own custom mappings.

I personally plan on sharing my own custom mapping when I put mine together :smiley:

Thanks in advance!

-PL>Y

Ok maybe this thread needs to be moved to the Midi mapping forum?

I was just following instructions by not posting in that forum, but obviously there’s no interest in the general disscussion.

I’m looking for a Mod response on this one.

the problem is; it’s a very broad subject ranging from the simple (e.g mapping the play button) to the complex (macro button or superknob).

different functions have different interaction options, these options lead to further more specific options for that function.

generally when someone needs help with a certain function/operation they are trying to map they just ask in a dedicated thread. if there’s specific answers you are looking for, you need to ask the right questions. ‘what’s going on in the background’ doesn’t fully cover what exactly you are driving at…

pick a button that performs a function you want to copy, go to mapping screen, add a baasic in, learn it to that button, and look for the highlighted ins/outs in the list. this will show you every function mapped to (technically conflicting) that button.

what kind of things have you got in mind for your own map?

Hi Brad,

Thank you for the response.

The reason I chose to make this discussion so broad is because I’m starting out fresh with Traktor. I don’t really know the in’s and out’s of how to midi map stuff.

In Ableton, I’ve only done extremely basic midi mappings to help me with my productions (like automating a frequency cut-off on a knob, or the volume of a channel to a line fader). In Ableton, it’s super simple: just press the “midi” button at the top, click on any function, and move the knob/fader and it instantly learns. In Traktor, this ability is not as obvious to me.

I’d like to start small and just modify Ean’s Midi-fighter TSI. I want to change things as simple as having the Cue/Pause button always cue up on the Load marker. Basically mimicing the auto-cue function in a CDJ-1000. The play button already seems to be mapped so that the track Pauses with a second hit, so I don’t need the Cue button the pause the track. Just jump back to the marker.

Since I don’t beat juggle (yet), I’m much more interested in the loop slicing function that Ean has mapped that that Red button in the videos. In the mapping I have, it seems like the button creates a loop, and the track continues to play silently while the loop is still on. Similar to the “slip” more or “loop roll” in Pioneer/Serato. The problem with this is that while I’m messing around with the loop and slicing it up, that track is still running, and when you get out of the loop, you have no controll over where the track comes back in. I’m looking for something WAY more advanced, but I don’t know if it’s possible with Traktor.

What I want: some sort of look-ahead fuction that will still slice up my track with the slicer effect, but still able to jump right back into the track like a gated loop roll. So basically, the computer will need to be constantly analysing the track, so that no loop is actually made, but it’s playing back slices from the would-be loop. so essentially like a loop roll, but more complex/interesting.

Did I loose you there at all?

If I can get pointed in the right direction, I’ll definitely share with everyone once I make some breakthrough.

-PL>Y

This does have the potential to become an interesting thread in the sense that you possess a higher than average technical skill set often required for beyond-the-basic midi programming. You should look into Bome’s midi translator once learning the limitations w/in Traktor’s mapping options. But to get to that point you will need to first develop your requirements based on playing style, FX usage and general workflow. There are many options available in Traktor as far as “superknobs” or buttons are concerned however a program like Bome’s really opens up what I like to call intermatic (interactive and automatic) functions.

Just mess around with TPs midi functions and in a few hours you’ll be at a point where things should start to click (hehe). Your background in VBS will make your learning curve in Bome’s less steep than most and will be a great asset once you learn the scripting functions available. For instance, I just thought about an EFX parameter in TP that could be altered based upon a midi out value of beat phase monitor or a simple timer based on the BPM (wanted to do some weird sounds from the Formant Filter w/out having to turn knobs).

Isn’t this the BeatSlicer?

thats what i was thinking

Hey Space Monkey,

I’ll definitely give Bome’s guide a look.

With regards the the beatslicer, I’ve seen it used, and from what I saw it looks like it kind of captures a slice from the track, and then keeps it stored in the memory. It was probably just being used in its one-of-many ways, but does it have the ability to be used like a loop roll on the fly? My thought was to essentially make a more interesting drum pattern on the fly than a simple loop roll (my style is to create drum hits and change up the patters of the track with the loops).

-PL>Y

in the preferences you can set it to load to the marker, that’s not a mapping thing.

with regards to the slicer, you can sort of mimic the way you want to use it.
have paramenters premapped to a button, along with the on/off and deck assign set to hold, so it only works while the button is down, pulling a slice, messing with it and then carrying on.

Huge discussion potential, wanted to throw a few comments out there. Some key things you can do to learn the inner workings of midi is to 1)Read everything you can on it, 2)Read your software manuals, 3)Just start experimenting with it. When you hit a roadblock, just go back to step 1. It’s really not as intimidating as people make it out to be.

Here are some major fundamentals:
Midi is a protocol for communication, it can be very flexible, BUT it definitely has its limitations. It’s important to know its basic components and how to use them (note on/off, CC (continuous controller), etc.

No hardware actually utilizes everything about midi. Hardware sends and responds to only a select set of midi messages, on select channels. Each machine is different. That’s why it’s key to sit down and get to know your hardware really well. A midi monitoring program is invaluable for this. Don’t think that just “midi learning” something in your software is giving you the whole picture. Sometimes controls send multiple messages (VCI-100SE is a good example), and you also need to know what your machine responds to (leds, bank changes, etc). Most manufactures set up leds to respond to the same note number that that button sends, but that’s not always the case.

Software all responds to midi differently too. Not everything can be controlled via midi, it’s up to the manufacturer. You have to experiment with what a simple midi note actually does in the software. Traktor actually uses a pretty sophisticated midi mapping system, even though the interface is clunky. Ableton’s is pretty rudimentary in comparison, though a lot can be done actually sending midi from the clip grid. It has the capability, just not the interface, so some people go the route of Python scripting to get what they want. I think Bomes MT is indispensable for strictly midi programming, but I’d definitely recommend having a solid grasp on midi before you go trying to translate it and add rules and shit. Bomes takes midi limitations in Traktor and Ableton and just throws it out the window. But you should hit those limits yourself first and understand WHY something doesn’t work before adding another program.

Traktor is very flexible because of its Modifier system. All this is is a basic logic framework. You have the choice in Traktor for a command to execute only if certain modifiers are in certain states (chosen by you). This allows you to make certain behaviors contextual, but is also the reason people have trouble modifying other people’s (complex) mappings without breaking them. A lot of dependencies get built up. You can figure things out if you understand the modifiers, but honestly I think it’s more cumbersome to be reverse-engineering other people’s work than to build your own.

A modifier command responds to a midi note like anything else. For example, you add a modifier command that says: hit button X and that changes Modifier 1 from a Value of 0 to a Value of 1, ONLY IF the Value is currently 0. Now M1=1. Another command says: hit button X again and that changes Modifier 1 from a Value of 1 to a Value of 0, ONLY IF the Value is currently 1. Now M1=0. Youv’e just created a modifier toggle. From here you can start adding other commands that don’t interfere with one another, because some of them have the condition M1=1, and others have M1=0. This means the command only executes if the condition is met. Hell, you can build simple maps with no modifiers at all.

General midi operates on 16 channels. The exact same message on different channels will not interfere with one another.

Your basic control sends a message that contains a channel, a note/cc number, and a a value of 0-127.

Your controller is sending info. For the software to understand it, it needs to have a line of communication open to the controller. This is the IN. IN commands take info from the controller, interpret it, and tell the software to do something. OUT is where the software tells the controller or other software to do something. So OUT commands are what you use to give yourself feedback. As I mentioned before, the OUTs are what the controller is responding to, and they are unique to each controller. More often than not, an led state is controlled by the Value of the midi message. You’ll commonly see 0=off, 1-127=on. Sometimes the Value will control different colors of the led, if the controller has multi color controls.

Continuous controllers (CC) are used for knobs, sliders, ribbons, etc. They really only differ from buttons in that they’re sending different values very quickly as opposed to the single message from a button press.

Note-on and note-off is a good concept to understand. Usually this means a control sends a maximum value (127=note-on), and (0=note-off). A control might do this via press=note-on, release=note off, or it could be a toggle (first press note-on, second press note-off). Experiment with what your controller does, beacuse it can confuse your mapping process if you’re not sure. Traktor is interesting because it doesn’t specifically give you the option to choose which the software responds to. But the button types (hold, toggle, direct, etc) are essentially doing this. A note off output command can turn an led off on your controller without actually turning the control off in the software, so just be aware of that.

Learning hexadecimal can be very helpful. A midi message is 6 characters long, written like this: B0 2C 7F. The first two designate a channel, the next two a note# or CC. The last designate a value. I forget where it starts, but the system moves upward in value or note # by moving first through integers, then letters A through F. So a value might go up in value like this: 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23, etc. Once you’ve got this down, your Bomes programming will be cake.

For your beatslicer thing, if I wanted it to act like a Serato loop roll, what I would do is macro commands to a button that simultaneously set a 4 or 8 bar loop and turn on the slicer. Another macro would release the loop when the effect is turned off. Doing this, when you exit the effect, you’re still at the part of the track where you left off, like Serato. I can’t stress enough how the slicer effect does not work if your beatgrids are off though :wink:

Might be basic stuff for some people, but I hope some of that helps those who need it.

The slicer will do what you’re thinking of, you can even sort of tune it so it basically acts like a loop roll. If you look at Ean’s midi fighter mapping vids, the bottom arcade buttons act that way.

Zac, thank you so much for this amazing response. This is exactly what I wanted to hear. It doesn’t teach anything specific, but you just gave me a very general overview that now tells me there is MAJOR potential in mappings and I didn’t even know you could litterately script.

I unfortunately have my first CFA exam to write in 2 months, but I can’t wait till it’s done so I can get my hands dirty with this.

Any suggestions on how to just test the limitations on Traktor without picking up a separate book on midi or another system?

-PL>Y

Yep, just think of something you want to build into your design, and try to do it. There’s no better way to learn than simple trial and error.