Help! Translating a MIDI CC input to a Roland Sysex Message

Hello!

I’m a bit new to sysex and brand new to Bome.

I am trying to have an incoming CC - let’s say CC 1, any value, on MIDI Channel 8 be converted into a sysex message to change presets/memory slots on my Roland MVS-12 video switcher.

I am sending static CC values out of a Fractal Axe FX III when a footswitch is triggered on its foot controller - ie Channel 6, CC 1, value 127

From the Roland’s manual -

The following commands can be sent to the MVS-12. They are shown in RS-232C (ASCII) and hexadecimal (MIDI).

MLD : Memory Select

Activate the specified memory number.

stxMLD:a;
a : Memory Number (0-3)

stx M L D : a ;
O2H 4DH 4CH 44H 3AH * 3BH

  • = 30H-33H

I can’t seem to figure out how exactly to put this into MIDI translator pro - I need to do that, save a profile, and then upload it to the bomebox via wifi for it to work right? Hoping for any step by step assistance here. Thanks for your time if you’re able to help.

Earlier in the manual for the MVS-12 this is also there, if it helps -

Data Byte
• F0H Exclusive Status
• 41H ID Number (Roland)
• dev Device ID (dev:10H-1FH)
• 00H MVS-12 Model ID
• 00H MVS-12 Model ID
• 4FH MVS-12 Model ID
• 12H Command ID (DT1)

Command Data
• SSH Checksum
• F7H

Hi and welcome to the Bome community!

You can try the below but I have no way to test it.

I set up my aliases as follows. You will need to set them up for your devices.

You can learn more about aliases from this tutorial.

Input is CC1 from on MIDI CH 6 as you requested.

The rules calculate the checksum as follows. We also log an error if it is out of bounds

if qq>3 then Log "Log value cannot be greater than 3 value is %qq%"
if qq>3 then exit rules, skip outgoing action

// First data item 
rr=2
// 0x4d
rr=rr+77
// ox r
rr=rr+76
// ox44
rr=rr+68
//0x3a
rr=rr+58
// value of qq+0x30 
rr=rr+qq
rr=rr+48
// 0x3b Last data item
rr=rr+59
// Get remainder
rr=rr%128
//Subtract from 128
rr=128-rr
// rr is now the checksum


// add 0x30 to qq
qq=qq+48


Log "Log Value=%qq% checksum is %rr% or 0x%02X rr%"

I build the outgoing message as a raw MIDI message from the information you provided.

F0 41 10 00 00 4F 12
// command string
02 4d 4c 44 3a qq 3b 
// checksum
rr 
// end
F7

Roland-MVS12-SysEX.bmtp (1.6 KB)

Steve Caldwell
Bome Customer Care


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

If your foot controller sends the value of 127 then change the incoming incoming trigger value to 127 and then qq to 0-3 in the first rule.

Steve Caldwell
Bome Customer Care


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

Thanks Steve! I was able to get this to work, but I’m not sure how to modify it to access the other memory slots (instead of 30H they are 31H, 32H, and 33H). Does it have to do with editing the qq variable somewhere? I want to have CC 2 do 31H, CC 3 do 32H, and CC 4 do 33H - I assume I can clone the translation you posted and just modify the variables but I’m not sure where to do that.

Yes, duplicate the existing translators, change the incoming trigger and modify the value of qq in the beginning of the rules like you did with the one you have. Make it 1,2,and 3. The 30H (48) is added later in the rules.

Or you could make one translator and capture the incoming CC value in qq and then subtract one from it in the first rule. That way you would only need one translator.

Steve

Thank you Steve! Got it all working.

Awesome, so I guess I got the checksum right and that the documentation was accurate. This is not always the case, especially the documentation on SysEX can be quite confusing.

Steve Caldwell
Bome Customer Care


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