Help with Raw Midi messages for ProphetVS

I’m trying to put together some translators for the ProphetVS. I want to translate CC’s from my controller to the odd messages of the VS. It’s a bit like an NRPN but MSB/LSB are reversed and the Parameter Select only needs to be sent once when the controller is first adjusted unless its a switch control. It doesn’t work if sent as an NRPN. I hoped there may be a way to send this as a RAW midi message in Midi Translator since it seems to translate everything else, but not being a programmer I haven’t figured out how to format it so that it works. I’m hopeful somebody can help me figure it out. This is the spec from the manual:

Parameter Select LSB
BN N = channel number
62 LSB
PP parameter number (00-7F). (For parameter numbers, see Table 14-1.)

Transmit
If enabled, sent whenever a parameter is changed on the VS. Followed by Parameter Select MSB message, and Data Entry bytes. If the parameter adjusted on the VS is a switch bit (see Table 14-1), then Parameter Select messages must be sent before Data Entry bytes. For continuous parameters (levels, rates, etc.), Data Entry messages affect the last parameter selected.

Receive
Affects selected MIDI parameter in the current program only. Parameters must first be selected over MIDI (LSB followed by MSB) before Data Entry bytes can be received (see below).

Parameter Select MSB
BN N = channel number
63 MSB pp parameter number (00-01)

Follows Parameter Select LSB message.

Once the parameter has been selected over MIDI, only Data Entry messages need be sent, unless the parameter selected is one of the switch bytes (see Table 14-1), in which case the parameter bytes are always required before the data bytes.

Data Entry LSB
BN N = channel number
26 Data entry LSB
PP parameter value (00-7F)

Always followed by Data Entry MSB message. See Parameter Select, above.

Data Entry MSB
BN N = Channel number
06 Data Entry MSB PP parameter value (00-7F)

May be sent following, or without Data Entry LSB message.

Hi and welcome to the Bome Community!

The below should work. I did not look at the referenced table since you didn’t post it.

I set up CC16 to handle NRPN Parameter 0 MSB and 7 LSB in the rules
I set up CC17 to handle NRPN Parameter 1 MSB and 8 LSB in rules

They are referenced by the local variables tt (MSB) and rr (LSB)

You can change these as you want in rules. Incoming CC can be changed in the translator incoming triggers to your liking.

I look at the last CC number sent to see if I need to send parameters again. I store last CC number in global variable ga an compare with the incoming CC number. If you are turning the same knob only the values are sent. Translators 0.1 and 0.3 are the value translators.

Translator 0.0 handles sending NRPN parameters for CC16
Translator 0.1 handles sending NRPN values for CC16

Translator 0.2 handles sending NRPN parameters for CC17
Translator 0.3 handles sending NRPN values for CC17

The values sent are the incoming value of the CC duplicated for both MSB and LSB. Typically this will give you the full range of motion but you may need to change this depending on what your Prophet VS expects.

I send to the same outgoing MIDI channel as was received on incoming.

I set up the aliases “My Controller” and “ProphetVS”. You will need to assign these aliases to your physical destinations.

Reverse NRPN Raw-2022-01-05.bmtp (3.2 KB)

Have fun!

Steve Caldwell
Bome Customer Care


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

Steve, Thank You!! That works great. It really opens my eyes to using variables. I wouldn’t have thought to use a variable for the parameter selection or to check which parameter was the last one used. I’m still trying to figure out how the midi channel is being calculated. The 176 OR oo has me confused.

// outgoing MIDI Ch 0 is MIDI CH 1
oo=0
oo=176|oo

oo=0

This is MIDI channel 1 - MIDI Channels start numbering at 0 so 0-15 is really 1-16

oo=176|oo

176 is decimal for B0 hex which is a CC message. So when you OR with 0 it still ends up a B0 hex. If I had set oo to a 1, the result or the or operation would have been B1 Hex or 177 decimal.

Steve Caldwell
Bome Customer Care


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

Hi, I am actually trying to do the same thing, to translate MIDI CCs to Prophet VS parameters. All these things with reversed NRPN messages and rules is a bit too much for me at the moment.

I would be happy to just have a simple translator to use the Mod wheel (CC#1) to control the filter for now (I can control other parameters with Vector Surgeon software).

Thanks in advance,

Roland

Hi @roland.guggenbichler , Welcome to the Bome Community!

According the the manual (PDF Page 114), Filter Env Amount is MSB 0 LSB 0D.

image

The attached should work for you.
Reverse NRPN Raw-Filter-Env-Amount-ProphetVS-2022-01-13.bmtp (2.0 KB)

Steve Caldwell
Bome Customer Care


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

Hi Roland,
With the MTP file that Steve created it is quite easy. I was able to setup translators for almost the entire synth to be controlled via my LaunchControl.

You do need to customize it to your system, I’m personally using it with the Bomebox, so my in/out are setup for that using the Aliases Steve created. I haven’t figured out virtual port routing to use the script with Ableton and MTP yet, but I’m making headway.

So the script is setup for midi channel 1, if you are using a different channel you’ll need to change it in the rules. For the incoming CC, you change that to whichever CC you are using on both translators. The first translator is the Parameter Select which needs LSB/MSB defined in the rules. You can find the parameter numbers in the manual and you simply replace the numbers that Steve placed for MSB and LSB. If you need the manual let me know. The second translator is the parameter value and just requires the input CC to be set.

Then you can just copy and paste those two translators for each parameter you want to control.

I discovered that there is a new VS Firmware which fixes the reverse NRPN and standardizes it so you can use it with any controller that supports NRPN, but since I have it working, I haven’t purchased that firmware and can’t comment on it.

1 Like

Thanks a lot guys, only I am still not getting it right. I was able to create CC to Sysex translators, but the NRPN logic doesn’t quite enter my brain.

Skylab, would you mind sharing your file you use with your LaunchControl, maybe I can take it from there?

Steve, unfortunately the file you gave me crashes Bome Translator Pro, I don’t know what I am doing wrong.

Roland

Hi,

How did you assign your aliases? The only way I would think MT Pro would crash is if you created a MIDI loop somehow. This is common if either you used a MIDI pipe ( like LoopBE or LoopMIDI) or if your ProphetVS has MIDI through enabled allowing the MIDI to run through a continual feedback loop,

Steve Caldwell
Bome Customer Care


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

Thanks a lot for the tips, I will continue to figure it all out!

Roland