Convert midi cc to program change increment


I was able to use midi filters to convert midi cc to specific program number change like sound patch in my external synth. I am now trying to set the midi filter to convert midi cc to increase or decrease program number by 1. For example, I would like to go up / down on VL70m synth patch by moving up/down the thumb controller in WX5 . I would appreciate any advice.
(I have set my external sound interface which sends midi cc to VL70m.)

Thank you so much.



I think you need a script to convert your midi cc messages into PgmUp oder PgmDn messages.
You could use the freely available ReaJS VST Plugin from Cockos to do that (


Hi Min Song,

You can do this with Cantabile but would need to use bindings and system exclusive messages to do it. For your Yamaha module you would need to set the Device Number using the instructions on page 32 of the VL70M manual. You would set it to device 0 for the sys-ex code examples below

value -

F0H, 43H, 10H, 57H, 0AH, 00H, 0BH, 01H, 00H, F7H

value +

F0H, 43H, 10H, 57H, 0AH, 00H, 0EH, 01H, 00H, F7H

the background reading for the VL70m sys-ex messages is on pg 29 and in the table at the bottom of pg 43 of the VL70M List book.

Cantabile allows sending of MIDI sys-ex in the bindings feature available on solo and performer versions.


Oh sorry, that was not included in my old version, I found it in the Cantabile guide, there‘s also an example how to bind a Sysex action to a midi cc(

1 Like

Hi, Dave & Harry
Thanks for kind reply. I am a beginner on this. I tried to add the sys-ex message you suggested on the binding section. I kept getting error message. Can you write me what exactly I should put on the sys-ex data section ?

I tried these -

F0H, 43H, 10H, 57H, 0AH, 00H, 0EH, 01H, 00H, F7H - not working

F0H 43H 10H 57H 0AH 00H 0EH 01H 00H F7H - still error message

F0 43 10 57 0A 00 0E 01 00 F7 - tried this - still error message

F04310570A000E0100F7 - not working

Thank you so much again.

Hi Min Song,

Did you set the VL70M system exclusive device number to Device 0? (this must be done on the module and how to is in the owners manual) If not what device number are you using?


The syntax for sys-ex entry in Cantabile is like this

0xF0 0x43 0x10 0x57 0x0A 0x00 0x0E 0x01 0x00 0xF7

each hex byte in the expression is proceeded by 0x when entering

or you can do it as a single expression like this syntax


Thank you again for your help. VL70m only allow me to choose device number between 1-16 ( not 0). I could pick “1”, then what would be the sys-ex message? Best,

Oh! I’m sorry, my bad, Device is always numbered 1 - 16 so using Device = 1 your sys ex would need edit to

for value +


for value -


Thank you so much. I now learned how to set this up. For some reason, however, my VL70-m froze when the cantabile sent the sys-ex data. I will review the manual and try different settings.

I’m going from the manual only but you could try reversing the data bytes (which are 00,01) they are set to 1 fist and 0 second so reversed would be

for value +


for value -


sys-ex explanation and charts I used

i think either 00 or 01…

so for Value+

F04311570A000E00F7 = Remote Off
F04311570A000E01F7 = Remote On

Yamaha device numbers 1-16 are 0x0-0xF in sysex messages. So device number 1 becomes 0x0 in sysex.
I think, because the commands emulate key presses, you have to send 2 messages, one for key down and one for key up. if you omit the key up message, your synth will not react to any other key presses.

So the message for value+ (is this right or is it part+ ?)should be F043 10 57 0A000E 01 F7 followed by a F043 10 57 0A000E 00 F7

and for value- it should be F043 10 57 0A000B 01 F7 followed by a F043 10 57 0A000B 00 F7

to copy x"F04310570A000E01F7" followed by a x"F04310570A000E00F7" -> value+
and x"F04310570A000B01F7" followed by a x"F04310570A000B00F7" -> value-

I hope Cantabile is able to send to messages in a binding.
Otherwise you have to setup 4 bindings for 4 controller values

Yes you are right with the Device 1 being 0 Hex so F043 10

On the switches you are right there should be a 1 byte followed by a zero byte but I thought you could put them in sequence in the same expression because the data area is described as ddH,~,ddH in the chart instructions so I assume the whole expression for value + to be

F04310570A0000E 01 00 F7

and value -

F04310570A0000B 01 00 F7

if not you can have both expressions in the same sys-ex dialog box one after the other for your switch, you shouldn’t need 4 bindings just 2 from what I see.

I thought value + and minus were what you wanted, it advances up the patch list and back down the patch list. If you wanted to change the part value you only need to change the lower address to 09 and 0C for - and +.


Yes I checked that you can send multiple sysex commands in one Binding, I tested one sysex command per line and my midiox monitor showed them properly up.

Finally x"F04311570A000E01F7" works(it increases the program number in my VL70-m synth). I had to chose the binding event as controller ( button).
I am very excited about endless mid capability of Cantabile!
Thank you so much for all your help. Best,


1 Like