select midi channel with buttons on control surface

abducted

2013-10-04 09:00:02

hi,
I have a basic midi keyboard that sends notes on midi channel 1 only.
I would like to use pads 1 to 16 on a separate control surface to change
this midi channel to the number of the pressed pad.
For example, if I press pad#3 on the control surface,
the midi channel would be set to 3. How can I do this, please?

DvlsAdvct

2013-10-04 16:43:58

Hi abducted

You can do this using rules and global variables. First you need to create a translator to assign a global variable based on which pad you pressed. First, to simplify the example, can you tell me what messages the pads send?

abducted

2013-10-04 20:52:55

when pushed, the pads sends a note on message :
pad 1 : 90 09 7F
pad 2 : 90 0A 7F
pad 3 : 90 0B 7F
pad 4 : 90 0C 7F
pad 5 : 90 0D 7F
etc...

DvlsAdvct

2013-10-08 23:43:52

Hi abducted

Sorry for the delay, I just did a big move to a new city and finally have all the internets set up.

So to change the channel we are going to use a global variable to designate the inputs and outputs. You're going to need a general passthrough translator to both pass any signals through the controller, and to change the channel that the keyboard is sending. We are also going to need to set a translator to accept the pad commands and change a global variable so the keys send on different channels.

The translator for the pads will look like:

Code: Select all

Translator 1: Channel Select
Incoming Signal: 90 pp 7F
Rules: if pp==9 then g0=1
if pp==10 then g0=2
if pp==11 then g0=3
if pp==12 then g0=4
[i]... etc for however many channels you need[/i]
Outgoing Signal: None

Translator 2: Keyboard Control
Incoming Signal: 90 pp qq
Rules: if g0==1 then rr=144
if g0==2 then rr=145
if g0==3 then rr=146
[i]... etc for however many channels[/i]
Outgoing Signal: rr pp qq
That will only change Note messages, not CC messages, so if those need to change we need to do something else.

That make sense?