Switch Channels with Kontakt

chicago64

2016-01-28 19:14:45

Any help for setting up this scenario. I have a Kontakt file I use to play 16 songs. Each song is assigned to midi channel 1-16 and I usually use the keyboard to change the outgoing midi channel to decide which of the 16 songs kontakt will play.

I would like to use another method to change the midi channel Kontakt is receiving instead of the keyboard method. Using a separate midi controller to tap 1 of 16 buttons to change the midi channel Kontakt is receiving. I thought Bome MT could do the trick, but I am looking for suggestions on how best to set this up.

The reason I don't want to use the keyboard for this purpose is because we are a traveling band and each keyboard is different. Sometimes it takes quite a bit of time to figure out on some boards the exact method for changing the outgoing midi channel.

Thanks for any help.

DvlsAdvct

2016-01-29 19:43:12

Hi chicago64

What you want to do is definitely possible in MT Pro. You will need to make sure to set the Input of the device when you load MT Pro, to make sure you are using the correct MIDI ports, but you can use aliases to make that a lot easier.

What you would do is set the 16 pads to define a global variable, which will designate the channel the keyboard sends to Kontakt. Can you give me the 16 notes that the pads send? From there I can build the translator without needing to add too many [insert value here] kinds of things.

Thanks
Jared

chicago64

2016-01-29 21:31:49

Hi Jared,

Thank you very much for your assistance with this. As far as the 16 notes are concerned they could simply be the first 16 notes on the list or really anything else. I will be programming them onto the pads of my iPad Midi Controller, so from that standpoint I believe they could be any group of 16.

If you would be kind enough to build it I can take your 16 notes and program them onto my the pads in my midi controller program. If you need any other info just let me know.

Thanks again!

Randy

DvlsAdvct

2016-01-31 20:01:22

Well, this is actually pretty simple. I'll throw some examples below and you can build from there.

You really only need one translator for the pads to set the channel variable. I'm going to use g0 as the variable, and middle C, or the hex 30 for the first note and go up from there. Then all you need is a translator for the keys, which will reference that global variable.

Code: Select all

Translator 1: Pads to Select Channel
Incoming Message: MIDI Message
Note On
Channel 0: Channel 1
Note: any note
Set Variable to note: pp
MIDI Port: Specific Port: Pad Controller
Rules
if pp<0x30 then exit rules, skip outgoing action
if pp>0x3F then exit rules, skip outgoing action
g0=pp+96
Outgoing Action: None

Translator 2: Keyboard On
Incoming Message: MIDI Message
Note On
Channel 0: Channel 1 //this should be the channel the keyboard naturally sends on
Note: Any note
Velocity: Any velocity
Rules: None
Outgoing Message: MIDI Message
Note On
Channel: Any channel
Use variable: g0
Note: Any note
Velocity: Any velocity

Translator 2: Keyboard Off
Incoming Message: MIDI Message
Note Off
Channel 0: Channel 1 //this should be the channel the keyboard naturally sends on
Note: Any note
Velocity: Any velocity
Rules: None
Outgoing Message: MIDI Message
Note Off
Channel: Any channel
Use variable: g0
Note: Any note
Velocity: Any velocity
Let me know if that works
J

chicago64

2016-02-01 03:09:52

I am going to try this. I will let you know how it works.

Thanks again.

Randy

chicago64

2016-02-01 04:46:36

Thanks again for the help, but I am not sure on a couple of lines.

First you have Translators 1,2, and 2. I assume you meant 1, 2 and 3 (3- keyboard off)

Then on the second and third translators I am confused on the last four lines:

Note: Any note (do you mean if doesn't matter what note is there?)
Channel: Any channel (again, do you mean is doesn't matter what channel?)
Use variable:g0 (I don't see any area on outgoing to plug in a variable
Velocity: Any velocity (again do you mean any velocity?)

Do I build 16 translators for each midi channel or are you saying the second and third translator take care of all 16 channels with use of the variable?

This type of programming is beyond my knowledge base. My apologies if I am missing something here.

Thanks.

Randy

DvlsAdvct

2016-02-02 16:47:59

Hi Randy

I definitely meant translator 3. It was a copy paste job that I forgot to fix :(

If you are on MT Pro v1.8, then the standard MIDI Message panel is set up like how I broke it down.

For the passthrough, there may be an easier way. If you click the dropdown for Note, you can select any note. And then a command appears to assign a variable. In the incoming and outgoing section apply that variable to pp for Note. Under channel, there's the same command, to apply the variable instead of an individual channel. Use g0 ONLY in the Outgoing message. And velocity use, use variable qq for incoming and outgoing. I'm still adjusting to the new interface.

You only build one translator for incoming and one for outgoing. That's what the rules are for. If you set the first pad to C3, the math should work fine, and then the outgoing channel is changed with those rules.

No worries about apologies. This stuff is hard at first, but once we get past the learning curve it'll make a lot of sense.
Jared

chicago64

2016-02-03 03:51:14

Hi Jared,

Works great!! Thank you very much. I had to tweak the rules a little. When you had me put in the notes into rules area, the rules area changed the notes in the equation line to numbers. ie: pp<0x30 became pp<48. Because of this the last variable equation g0=pp+96 was giving me channel numbers over 100, not 1-16. So I changed the rules to say this:

if pp<48 then exit rules, skip outgoing action
if pp>63 then exit rules, skip outgoing action
g0=pp-48

Once I did this it worked perfectly and changed the outgoing channels from 1-16 with my midi pad. Thank you again for helping me with this and also help me get my feet wet with programming in Bome. I have a much better understanding now of programming with rules/variables and appreciate your help very much.

Thanks!

Randy

chicago64

2016-02-11 00:07:59

Hello again,

After getting this project to change channels very well, I have not faced this problem. The pass thru notes from keyboard thru Bome to Kontakt sustain without pressing the sustain pedal. Also when I press a key it depresses the key in Kontakt and stays depressed. My sustain pedal signal comes into Bome as a CC note. But it does not matter if the sustain pedal is depressed or not depressed the note from keyboard sustains regardless and the key stays depressed.

I tried adding a pass thru for BOTH note ON and note OFF but that didn't fix the problem. The note will sustain under all circumstances. If I change the keyboard to bypass Bome then everything works just fine.

Any thoughts?

Thanks.

DvlsAdvct

2016-02-16 15:54:28

If the sustain pedal is sending a CC message, then it won't work with the passthrough we set up. What we can do, though, is set a translator to change the CC to a note. Do you need the pedal to change channels like the notes we shifted? Or is it always the same channel?

Jared