Toggled CCx as CCy shift

elnn

2015-07-17 16:25:25

Hi. I've been reading the manual but there are some basic things I don't entirely grasp, so I can't really make what I want. Maybe someone here will lend a helping hand?

It's a pretty specific and, it seems, quite simple a thing I want to achieve. On a Livid Code v2.


• 1 •
I'll take Encoder 1 as a generic encoder and call it E1
b1 = button 1
4 banks correspond to encoder channels 1-4

• 2 •
E1 sends out Ch1 CC8 (continuous) in Bank 1, Ch4 CC8 in Bank 4
b1 sends out Ch5 CC8 (toggle) regardless of bank
E2 = Ch1 CC8, b2 = Ch5 CC8, etc.

• 3 • (what I want to achieve)
if b1 >0, then E1 → CC8+40 = CC48
if b2 >0, then E2 → CC49
etc.

so if bx >0, then Ex CC number gets 40 added to it

• 4 •
in short:
if Ch5 CCx > 0, then Ch1-4 CCx turns to Ch1-4 CCx+40

• 5 •
if Ch1 CC5 > 0 (momentary, bank insensitive), then bx is overridden and E1 channel gets 5 added to it
(E1 turns from Ch1 CC8 to Ch6 CC8)


It seems that it's possible to have it all constricted to one or two translators?
But I don't really understand what incoming message to choose, what variables to assign to what, etc.

Could someone lead me through it / get me in the right direction?


Cheers!

DvlsAdvct

2015-07-20 19:10:57

Hi elnn

Yes, what you want to do is possible. Is there a way to have your bank switch button send a MIDI note to MT Pro, to show that you've pressed the bank switch button?

Thanks
Jared

elnn

2015-07-21 18:29:10

No, bank selection is internal :/

Just received the controller and apparently certain things aren't possible, so certain things have changed. Banks necessarily shift the channel of all encoders and buttons. probably makes things simpler, though (:

Encoder = Ch'yy CC'xx
Enc. Button = Ch'yy CC'xx+32
Shift button = Ch'yy CC'76

• 1 •
if Ch'yy CC'xx+32 > 0, then Ch'yy CC'xx → Ch'yy+4 CC'xx
(toggling the button on adds +4 to encoder channel)

• 2 •
if Ch'yy CC'76 > 0, then Ch'yy CC'xx → Ch'yy+4 CC'xx+32
(pressing the shift button adds +4 to channel and +32 to CC#)



Additionally – can MT double relative message speed (send out another 1 / 127 upon receiving one?) while pressing a button?

DvlsAdvct

2015-07-21 20:24:39

So you can do this with just a few translators. Before I draft them out, will the button be used to toggle up a number of times, or just toggle on/off?

elnn

2015-07-21 21:07:55

On / Off.

Forgot to mention – shift button overrides encoder buttons at the moment of pressing it. So it works as an additional bank for each bank when it's pressed

DvlsAdvct

2015-07-21 21:38:32

Yup, I figured that much.

So it would look something like this

Code: Select all

Translator 1: Shift
Incoming Message: 90 30 7F
Rules: g0=g0+1
if g0>1 then g0=0
Outgoing Message: None

Translator 2: Bank Shift
Incoming Message: 90 31 7F
Rules: g1=g1+1
if g1>1 then g1=0
Outgoing Message: None
Feel free to put LED outputs for these outgoing messages.

Code: Select all

Translator 3: CC Messages
Incoming Message: oo pp qq
Rules: if oo!=0xB0 then exit rules, skip outgoing action
if g0==1 then goto "Shift"
if g1==1 then goto "Enc Shift"
Label "Shift"
oo=oo+4
pp=pp+32
Exit rules, execute outgoing action
Label "Enc Shift"
oo=oo+4
Outgoing Message: oo pp qq
This would only work with CC messages on channel one (oo=0xB0), but you could create two rules that would have this same translator work for all four channels. You'd just need to change the note messages which set the variables based on the bank you're on.

Does that make sense?
Jared

elnn

2015-07-22 00:18:20

Thanks a LOT, Jaden! Got me on the right path – now I get how this little MT fella works (: