Background: the X-Session Pro doesn’t have many keys, so we have to make the do double duty…
I mentioned in another thread about my loop key hack - a way of turning the loop key into a mode selector so that the nudge arrow keys become loop length increment and decrement keys while the loop key is down. If you do this you’ll fund that you get forced to commit to looping just because you want to set a loop length, so I added the twist that IF you touched either of the nudge keys while the loop key was held down, the loop key generates no messages. This separates the operation of selecting a loop length from the loop drop event, and it’s a personal quirk, but I prefer buttons that activate on key release (I find I can be more accurate that way) so by loop drop happens on key-up not on key down like the default Traktor behavior.
So how do I do this? Using Bome’s MIDI Translator. I set up a couple of rules that fire on the keys in question and mapped the outputs of that mini program to the events in Traktor. Here’s the setup (hope this works)…
Part two, and I hope you all realize I trashed my setup just to make these pictures easier to understand .
The technique uses two global variables “ga” and “gb”. The “ga” value is used as a flag that tells us when the loop key is down and the “gb” flag tells us when a nudge button has been pressed. The Nudge buttons send different NoteOn/NoteOff values when the “ga” flag is set (and by “NoteOff” I mean a NoteOn with velocity=0 rather than an actual NoteOff) with the velocity passed through, and they also set the “gb” flag whenever they send an output. The Loop button only sends a quick “NoteOn, NoteOff” pair if the button is released AND the “gb” flag was not set, otherwise it sends nothing.
One things about building Bome’s rules is that it’s more efficient (I’m presume) to have a large number of rules where each one is specific to a Note or CC, than it is to have a very general rule that has a lot of matching-of-cases inside. I could quite easily have handled both the left and right nudge keys in a single rule by match the Incoming message against “90 pp qq”. The side effect of this is that every NoteOn message on that channel will have to be pushed through that rule regardless of whether the rule will be interested in it. Breaking the task out into two rules matching on the specific note values “90 4a pp” and “94 4c pp” (or whatever the values were) means less data is processed by each rule. A classic case of KISS - keep it simple, stupid.
That’s the best way I could think of for sharing the thinking behind a Bome’s rule. Anyone got any better ideas?
I know this is a really old thread but have you gotten two effects to work on a single knob? Could I do that in Traktor by just mapping both effects to the same knob or would I need to do it through Bome?