Midi Notes to Midi Show Control Rule Help

lifeonfourstrings

2016-04-12 15:46:22

Hi all
have dug around and couldn't seem to find the help I need if I have missed something please feel free to direct me in the right direction.

Just at the start of my learning cure so forgive me for any wacky terminology,

I'm Using Pro Presenter 6 to control a Jands Vista Lighting Desk.
What I'm trying to achieve is convert Midi Note strings into Midi Show Control Format. I have managed to achieve this by creating Translators for every note, but after reading some guides on these forums I have decided to be adventurous and try my hand at rules to save the laborious data entry.

current example of conversions happening:

Note >>>> MSC

Channel 1, Note 1, Velocity 1 >>>> Device ID 0, GO, Cue 1, Cue List 1

Cue List 1
90 01 01 >>>> F0 7F 00 02 01 01 31 00 31 F7 Cue 1
90 01 02 >>>> F0 7F 00 02 01 01 32 00 31 F7 Cue 2
90 01 03 >>>> F0 7F 00 02 01 01 33 00 31 F7 Cue 3

Cue List 2
90 02 01 >>>> F0 7F 00 02 01 01 31 00 32 F7 Cue 1
90 02 02 >>>> F0 7F 00 02 01 01 32 00 32 F7 Cue 2
90 02 03 >>>> F0 7F 00 02 01 01 33 00 32 F7 Cue 3

ETC......

so I created these rules to automate the process

Incoming : 90 pp vv

Rules:
if pp<1 then Exit rules, Skip Outgoing Action (I don't want note 0 to be processed in this translator)
tt=vv+48
rr=pp+48

Outgoing: F0 7F 00 02 01 01 tt 00 rr F7

this all works but when I get above 9 for either Channel or Velocity parameter the following occurs

Midi Notes Use Hex and count from 09 (9) up to 0F (15) before 10 (16)

IE: 90 01 0E (Note 1 Velocity 13)

where as MSC adds another Colum in its string

IE: F0 7F 00 02 01 01 38 00 37 F7 (Cue List 7 Cue 8)
F0 7F 00 02 01 01 31 33 00 31 F7 (Cue List 1 Cue 13)
F0 7F 00 02 01 01 31 32 00 31 34 F7 (Cue List 14 Cue 12)

How should I go about creating a rule that will take Notes and Velocity above 9 and convert to the appropriate MSC format.
also taking into account that MSC doesn't seem to use the extra hex values.

Any help on this would be Fab also the Why Behind it would be even better.

Thanks

DvlsAdvct

2016-04-13 02:08:01

Hi lifeonfourstrings

So the problem we have here is MT Pro is a very literal application. Since the software is now changing what it needs the sysex message to look like, MT Pro can't adjust unless we tell it to directly. That's not to say it's not possible, it's just more complicated.

What you'd need to do is create a different translator for each time this cycles and moves to requiring an extra byte of data.

So you'd have a translator that looks like:

Code: Select all

Incoming Message: 90 oo pp
Rules: if pp>13 then exit rules, skip outgoing action
oo=oo+48
pp=pp+48
Outgoing: F0 7F 00 02 01 01 oo 00 pp F7

Incoming Message: 90 oo pp
Rules: if pp<13 then exit rules, skip outgoing action
if pp>26 then exit rules, skip outgoing action
oo=oo+[i]whatever the value is[/i]
pp=pp+[i]whatever the value is[/i]
rr=rr+[i]whatever the value is[/i]
Outgoing: F0 7F 00 02 01 01 31 oo 00 pp rr F7
And you'd need that for every time it scales. Does that make sense?
Jared

lifeonfourstrings

2016-04-13 03:59:35

Hi Jared

Yes this makes sense

ill try it out and see how I go,

Thanks For your Help.

Jason

DvlsAdvct

2016-04-13 04:34:44

No problem. Let us know if you have any questions :)

J

lifeonfourstrings

2016-04-14 12:23:10

Success!!!

so I ended up using a little math and with your help this is what I came up with.

Code: Select all

Incoming Message: 90 oo pp
Rules:
if oo<10 then exit rules, skip Outgoing Action
if oo>99 then exit rules, skip Outgoing Action
if pp<10 then exit rules, skip Outgoing Action
if pp>99 then exit rules, skip Outgoing Action

tt=pp/10
tt=tt%10
tt=tt+48

ww=pp%10
ww=ww+48

rr=oo/10
rr=rr%10
rr=rr+48

ss=oo%10
ss=ss+48

Outgoing:F0 7F 00 02 01 01 31 tt ww 00 rr ss F7

 
There will be 9 Variations of this formula to work with all notes and velocities up to 127.

DvlsAdvct

2016-04-14 15:36:55

Awesome. Glad to hear it worked :)

J