Midi Translator and Korg nanoPad2

anp27

2014-08-27 05:24:55

Hi everybody, here's a question. Basically I would like use the Midi Translator to re-route the Korg nanoPad2's XY pad to have 4 separate MIDI Channel outputs. Currently, the XY pad can only transmit MIDI CCs from a global MIDI Channel, even though the nanoPad allows 4 different 'scene' assignments for the 16 drum pads.

In detail, what I would like to do assign 4 of the drum pads to switch between the 4 different MIDI Channel assignments for the XY pad. For example, Pad 1 = MIDI Channel 1, Pad 2 = MIDI Channel 2, etc.. So my question is, is this possible with the MIDI Translator, and if so, how do I set this up? I downloaded the trial version but don't know enough to set this up even after having read the manual. Anybody?

DvlsAdvct

2014-08-27 19:03:19

Hi anp27

What you want to do is completely doable with MIDI Translator. We need to use a combination of translators and global variables to change the output of the x/y pad.

My question is, do you want those drum pads to act normally AND work as shifts for the x/y pad, or just work solely as shift controls?

Thanks
Jared

anp27

2014-08-27 23:11:38

DvlsAdvct wrote:My question is, do you want those drum pads to act normally AND work as shifts for the x/y pad, or just work solely as shift controls?
I wouldn't mind the option of having BOTH shift and drum pad functionality. Please let me know how this can be done! I've searched high and low for a solution and even considered buying 3 more nanoPads just so I could have 4 functioning XY pads! The only thing stopping me was that these extra nanoPads will take up more desk space that I do not have. Looking forward to your reply.

DvlsAdvct

2014-08-28 18:29:37

Do you have a single button you can use as an internal shift command?

anp27

2014-08-28 21:46:28

DvlsAdvct wrote:Do you have a single button you can use as an internal shift command?
I don't quite understand what you mean... There are 16 drum pads altogether on the unit itself. I could use one of these as the shift command. Does this answer your question?

Actually come to think of it, when I'm using the XY pad, I don't need the drum pad functionally at all.

DvlsAdvct

2014-08-29 00:08:40

So, for example can you use either of the Hold, Flam or Roll buttons for a MIDI shift button? Then, what you can do is press the Hold/Flam/Roll button, select the channel for the x/y pad and then keep performing as per usual. The problem with using the drum pads as shift commands is we need to figure out a way to make the drum pads work as intended, AND change the channel of the x/y pad. Wouldn't want you to sacrifice four pads for this if we can avoid it.

anp27

2014-08-29 00:20:12

DvlsAdvct wrote:So, for example can you use either of the Hold, Flam or Roll buttons for a MIDI shift button? Then, what you can do is press the Hold/Flam/Roll button, select the channel for the x/y pad and then keep performing as per usual. The problem with using the drum pads as shift commands is we need to figure out a way to make the drum pads work as intended, AND change the channel of the x/y pad. Wouldn't want you to sacrifice four pads for this if we can avoid it.
Yes, if there is a way to assign the Hold, Flam or Roll buttons I would gladly use those buttons. Currently you cannot assign them to do anything with the built in Korg Editor software but if there is a way to do this in BMT I'm all ears!

anp27

2014-08-29 00:29:08

So I just checked and it seems only the 'Scene' button can transmit MIDI, all the other 5 buttons don't work... the Scene button is the only one that seems to transmit MIDI when I have the 'Capture MIDI' box checked. But this is okay because I wanted to use the Scene button for the Shift MIDI button anyway. I wish I could figure out how to do this by myself but I'm truly stumped on how to proceed. Need help!

DvlsAdvct

2014-08-29 02:45:36

anp27 wrote:Yes, if there is a way to assign the Hold, Flam or Roll buttons I would gladly use those buttons. Currently you cannot assign them to do anything with the built in Korg Editor software but if there is a way to do this in BMT I'm all ears!
If the Korg Editor doesn't let you assign those buttons to send MIDI then, unfortunately, there's nothing we can do. They should change how the pads send messages, though, so that might be fun to play with.
anp27 wrote:So I just checked and it seems only the 'Scene' button can transmit MIDI, all the other 5 buttons don't work... the Scene button is the only one that seems to transmit MIDI when I have the 'Capture MIDI' box checked. But this is okay because I wanted to use the Scene button for the Shift MIDI button anyway. I wish I could figure out how to do this by myself but I'm truly stumped on how to proceed. Need help!
No worries, we'll get you there. If the Scene button works then this shouldn't be very hard. Make sure, though, that when you press the scene button it isn't also changing scenes. This should be findable in the Korg Editor. What we're going to do is create a passthrough translator, and then build it from there. That first translator is going to be

Code: Select all

Translator 1: Passthrough
Incoming Message: pp qq rr
Rules: if g0!=0 then exit rules, skip outgoing action
Outgoing Message: pp qq rr
What this does is receive any MIDI message and send it out exactly as is. The rule means that if g0 is not 0 (or the shift button is pressed) no buttons will send signal. We want this because when you press the Scene button nothing is going to send. Then we need to create that shift button. Use the scene button. I'm using 90 30 pp but yours can be anything. Just make sure the last byte is pp, so it responds whether you press the button or release it.

Code: Select all

Translator 2: Shift Button
Incoming Message: 90 30 pp
Rules: g0=pp
Outgoing Message: None
So all this does is change the g0 signal. When you press the button then nothing on the controller should send to your software. I just want to confirm this all works before we move on. Also, do your pads receive MIDI feedback? Can we light them up using MT?

Thanks
Jared

anp27

2014-08-29 03:01:02

Ok, before I proceed with the assignments, I will need some help configuring the MIDI Ins and Outs. I'm not sure what to select. I know that for the Ins it will be nanoPad2 Control, but what about the Outs?

DvlsAdvct

2014-08-29 14:28:43

I'm not sure why your posts have been flagged this whole time. Hopefully that stops happening.

Anyway, your ins and outs are pretty self-explanatory. For MT, you want to activate two sets of Ins and Outs. First, you want to activate the In and Out for the NanoPad2. For the Outs you want to activate a set of MIDI Translator Virtual Ports, In and Out. I'd recommend using Virtual Port 1 for simplicity's sake.

In your DAW you need to activate the In and Out as that MT Virtual Port, NOT the NanoPad. The NanoPad will only be connected to MT, and the Virtual Port will communicate all MIDI data with your DAW.

Does that make sense?
J

anp27

2014-08-29 15:12:15

Hmmm, the flagging seems to have stopped at least.

Ok, I've activated the Ins and Outs for both the nanoPad and the Virtual Port.

I created the 2 translators with the code you provided. Unfortunately, the buttons do not work and I'm still getting MIDI messages from the nanoPad after having pressed the Shift button.

anp27

2014-08-29 15:51:04

Here are screenshots so that you can see what I've done:

ImageImage

I noticed that when trying to use the Scene button, there are double the amount of numbers compared to the drum pads which leads me to believe that the Scene button is hardwired to control scene changes exclusively.

anp27

2014-08-30 15:24:52

DvlsAdvct wrote:Just make sure the last byte is pp, so it responds whether you press the button or release it.
This is the part I left out before. After changing the last byte to pp, the shift button is working now! :D Just one note though, I'm not using the Scene button for the shift because I noticed that the Scenes change automatically everytime this button is pressed and I haven't found a way to change this behavior using the Editor. Instead, I'm using one of the buttons on my nanoKontrol which I have included as a MIDI Input device in the BMT. It works perfectly right now.
DvlsAdvct wrote:Also, do your pads receive MIDI feedback? Can we light them up using MT?
No, the pads on the nanoPad do not light up. But the buttons on my nanoKontrol do light up and I'm eager to connect this and all my other MIDI controllers to the BMT, so let's please proceed!

DvlsAdvct

2014-08-31 18:45:46

OH! Because your scene button sends a sysex message. Interesting.

So what I need you to do is click the Capture box and press and release the scene button. Do you get a second message? If so, which byte of the message changes?

anp27

2014-08-31 23:28:54

Here's what I got from the Capture MIDI box. The Scene button doesn't produce a second message upon release, but it jumps to the next Scene.

F0 42 40 00 01 12 00 5F 4F 00 F7 = Scene Button 1
F0 42 40 00 01 12 00 5F 4F 01 F7 = Scene Button 2
F0 42 40 00 01 12 00 5F 4F 02 F7 = Scene Button 3
F0 42 40 00 01 12 00 5F 4F 03 F7 = Scene Button 4

DvlsAdvct

2014-08-31 23:36:46

Hm... well, we can still do it, but the Scene button would work as a toggle, not a hold. So you'd press once to set it to select the MIDI channel, and a second time to go back. This changes the channel of all of the pads, right?

anp27

2014-08-31 23:40:17

Totally fine with the Scene button as a toggle. Yes, it changes the settings of all the pads.

DvlsAdvct

2014-09-02 18:12:12

And regardless of the scene, you want the pads to send the same message, right? I'm just working through how the rules are going to work before I draft up what you need.

anp27

2014-09-02 18:25:24

What do you mean by 'same message'? I'm not clear on this.. I guess it won't be the same message because I want to have 4 different XY assignments.

DvlsAdvct

2014-09-02 18:31:02

No no, I meant for the pads. The X/Y pad I understand, I mean the drum pads. You want the same MIDI messages coming from the drum pads when it isn't selecting the channel for the X/Y pads, right?

anp27

2014-09-02 18:36:02

Yes, sorry! Same messages for the drum pads.

DvlsAdvct

2014-09-02 18:54:17

Okay. So we are going to need to set the scene button to count global variables, and those global variables will dictate how the pads react. They are going to do this using Presets. You will have three presets: (1) Scene Selection; (2) Drum Mode (3) Select X/Y Pad. Scene 1 and 3 will be the same, scene 2 and 4 will be the same. First we'll start with how the scene button works.

Preset 1 Includes:

Code: Select all

Translator 1: Scene Button
Incoming Message: F0 42 40 00 01 12 00 5F 4F pp F7
g0=pp
Outgoing Message: Select Preset Timer

Translator 2: Select Preset
Incoming Message: Select Pad Preset Timer
Rules: If g0==0 the Goto "Pads"
if g0==1 then Goto "XY Select"
if g0==2 then Goto "Pads)
if g0==3 then Goto "XY Select"
Label "Pads"
Exit rules, execute outgoing action
Label "XY Select"
Exit rules, skip outgoing action
Outgoing Action: Activate Drum Mode Preset

Translator 3: Select Preset
Incoming Message: Select XY Preset Timer
Rules: If g0==0 the Goto "Pads"
if g0==1 then Goto "XY Select"
if g0==2 then Goto "Pads)
if g0==3 then Goto "XY Select"
Label "Pads"
Exit rules, skip outgoing action
Label "XY Select"
Exit rules, execute outgoing action
Outgoing Action: Activate XY Pad Preset
So this should allow you to activate each preset. Within each preset, though, you need to deactivate the other one. That's easy. You want to start each preset with a translator like below:

Code: Select all

Translator 1: On Activate
Incoming Action: On Activation of This Preset
Outgoing Action: Deactivate the other preset
Does that make sense? Once that logic is in place we can start building translators.

anp27

2014-09-03 01:34:10

Can you take a look and see if I've set this up correctly?:

Image

DvlsAdvct

2014-09-03 02:28:01

That looks good, but you need to create the presets on the left hand side, under Scene Selection

anp27

2014-09-03 02:57:03

How about this?

Image
Image
Image

DvlsAdvct

2014-09-03 03:05:29

Those timer translators need to go in the first preset like you had them initially. The first translator in each of the other two presets needs to read as follows:

in Drum Mode Preset

Code: Select all

Translator 1: On Activation
Incoming Message: On Activation of this Preset
Outgoing Message: Deactivate Select X/Y Pad Preset
In Select X/Y Pad Preset

Code: Select all

Translator 1: On Activation
Incoming Message: On Activation of this Preset
Outgoing Message: Deactivate Drum Mode Preset
You should then be able to use the Scene Select button on the Korg controller to swap between the presets.

anp27

2014-09-03 03:20:50

How's this?

Image

DvlsAdvct

2014-09-03 03:22:09

Take the timer translators out of the 2nd and 3rd presets. Those only need to be in the first one as you only want them triggering once. Then try it out and tell me if it works.

anp27

2014-09-03 03:29:52

Ok, I've taken them out. So no signals should be passing through when I press the pads or the move my finger on the XY pad now, right?

DvlsAdvct

2014-09-03 03:31:01

Right. As of now all that works is the preset switching. I want to get that working correctly, and then we'll move on to getting the pads to work.

anp27

2014-09-03 03:31:56

Ok, got it, thanks.

DvlsAdvct

2014-09-04 16:44:38

Sorry for the delay, but I think I can put together something really cool for you. :) So we're going to start small and build up, and as we go we may make some changes, depending on how the controller interacts. I don't have one, so this is going to include trial and error. Hopefully that's okay :)

This is also assuming that your presets are switching correctly.

We are going to start with the second preset, so we can select the channel the Touch pad communicates on. This is going to have four translators, one for each of the four pads so you can select the four channels the touch pad is sending on. We are going to use the global variable g1 to store a value which will dictate what channel the touch pad sends. I don't know what MIDI note those pads send so I'm going to guess, but when you input it yourself make sure the last byte is 7F (127) and not pp or 0. This will cut down on unnecessary signals.

Remember, these go in the Select X/Y Pad preset.

Code: Select all

Translator 1: Channel 1
Incoming Message: 90 20 7F
Rules: g1=0
Outgoing Message: None

Translator 2: Channel 2
Incoming Message: 90 21 7F
Rules: g1=1
Outgoing Message: None

Translator 1: Channel 3
Incoming Message: 90 22 7F
Rules: g1=2
Outgoing Message: None

Translator 2: Channel 4
Incoming Message: 90 23 7F
Rules: g1=3
Outgoing Message: None
So our Drum Pad preset is going to just be a passthrough. We are going to exclude the touch pad, though, which I'll explain as we go. I'm not sure what CC messages your nanopad sends, but since it will send a CC we can easily ignore it. There should be two translators in the Drum Pad Preset:

Code: Select all

Translator 1: Drum Pad Passthrough
Incoming Message: 90 pp qq
Rules: None
Outgoing Message: 90 pp qq
This translator will take in any note on message and just send it right through, no problems. The second translator is going to handle the touchpad.

Code: Select all

Translator 2: Touch Pad
Incoming Message: B0 pp qq
Rules: tt=176
uu=tt+g1
Outgoing Message: uu pp qq
This translator will receive your CC message (B0) and translate it up by the variable dictated by our Touch Pad preset earlier. The tt=176 is a decimal conversion for B0, meaning that if g1 is 1, or the second pad is hit in the X/Y select mode, then it will be 177 (tt+g1) and be B1, or a CC on channel 2.

Make sense?
Jared