how to set all incoming midi one midi channel up

hairness

2008-01-24 17:10:19

hello,

im having a hard time to write something that just sets all incoming midi information to another midi channel

midi translator gets a trigger some CC
and after that everything stays the same except that everything goes out on some defaul midi channel

how would that work ?

thanks

florian

2008-01-25 19:24:43

You can set up a global variable, say gc to hold the channel.
E.g. use the modulation wheel controller message to change the channel:

Code: Select all

GENERAL: Stop Processing: checked
INCOMING: B0 01 pp
RULES: 
 gc = pp / 8
OUTGOING: none
Like that you can use the modulation wheel (or any other controller) to set the channel: at bottom-most position, it's channel 1, and at top position it's channel 16, evenly spread over the range of the wheel (that's why I divide the value by 8).

Then add a translator to change the channel for every other incoming MIDI message, using these rules:

Code: Select all

INCOMING: pp qq rr
RULES: 
 pp & 240   [remove any existing channel]
 pp | gc      [apply the gc channel]
OUTGOING: pp qq rr
For completeness, you can do that for 2-byte messages, too:

Code: Select all

INCOMING: pp qq
RULES: 
 pp & 240
 pp | gc
OUTGOING: pp qq
Hope that makes sense!
Florian

hairness

2008-01-29 23:05:42

hmmm

okay i guess i got how its suppose to work .. but how do i set up the rule for that

pp & 240 [remove any existing channel]
pp | gc [apply the gc channel]


its not an assignment und not an expression ...

how can i do it

florian

2008-01-30 11:18:49

Hi,

the & is the binary AND operator, and | is the binary OR operator, you can select them in expressions. But you're right, I messed it up!
the rules for the second Translator should have been like this:

Code: Select all

RULES:
 pp = pp & 240   [remove any existing channel]
 pp = pp | gc    [apply the gc channel] 
So both rules are expressions.

sorry for that,
Florian