[MTP]SysEx + Variable?

Hello,

I have a Novation Launchkey 37 MK3 and would like to change its display text with MTP 1.90.
According to the manual of Launchkey, I can change the text this way:
F0002029020F04[ […]]F7

Example:
Incoming trigger: F1 (hotkey)
Rules: none
Outgoing action: Send MIDI SysEx: F0002029020F0400506572666F726D616E636520303031F7
This result is this display text: Performance 001
(Works perfectly!)

Now I tried to add this rule:
pp = 31
and change the final output to:
Outgoing action: Send MIDI SysEx: F0002029020F0400506572666F726D616E6365203030ppF7

The final display text is: Performance 00
How can I use variables to change the last digit?

My aim is to press a button on the Launchkey which changes performances and updates the text.
Something like:
F3 hotkey increases performance by 1, F2 hotkey decreases it by 1.

Thanks for any help!

Hi,
I solved the problem:
pp=0x31

But I have another question:
I want to increment the value of pp by 1.

I press F3 key 1 time: pp=0x31
2 times: pp=0x32
3 times: pp=0x33

I can add another variable inside of the rule:
ga=ga+1

Then I will need to combine both variables, like:
pp=0x3ga
pp=0x3%ga

but it did not work.
How to write it correctly?

Best regards

Hi, to change the last digit it would be 0x30 through 0x39 which is decimal 48-57.

You have 30 digits here
0 0 0
which is 0x30 0x30 0x30

The attached should give you and idea how it works.

I take the incoming value of a CC value and break it up into 1’s 10’s and 100s, then I add 0x30 to each to get the ASCII value 0-9 for each into each variable. The variables are combined into the outgoing text. Since the word "Performance " does not change I just leave that alone.

You could do something similar with a PC value of 0-127.

The rules look like this:

// variable qq is 0-127
// get 1’s into rr
rr=qq%10
// add 0x30 (decimal 48)
rr=rr+48

// get tens into tt
tt=qq/10
tt=tt%10
// add 0x30 (decimal 48)
tt=tt+48

// get 100’s into uu
uu=qq/100
// add 0x30 (decimal 48)
uu=uu+48

CC-to-SysEX-Launchkey37-MK3.bmtp (1.3 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
2 Likes

Thank you for your quick response!

I think there is a small missunderstand:
It’s not a knob or a fader, it is a button which only sends 127 (pressed) or 0 (released).

For this reason I need to increase the value of a variable depending on how many times the button was pressed.
I press it now: value = 1
I press it again (maybe 5 minutes later): value = 2
etc.

There is also another button (previous) which does the exact opposite, but once the “next button” works, I can easily do the same for the other button.

Best regards

Sure, this is easily done by manipulating global variable ga with buttons and then triggering a timer with the same rules as described before to update the display.

Here I have note 0 incrementing and note 1 decrementing ga and then triggering a timer (modified version of the original posting) to send the update to the display.

Button-to-SysEX-Launchkey37-MK3.bmtp (1.8 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
2 Likes

Ok, it works - very good.

The idea with the timer is great too, because I can use it for both buttons which saves a lot of lines.
I also used a translator with the incoming timer with the ga value to colorize the pads.

So whenever I press Down/Up, it changes both the performance nr and the colors of the pads.

Thank you very much!

My pleasure!

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz