Roland MKS-70 (Vecoven 4)

Using @Feinsveur’s JX-10 / MKS-70 (Universal / Vecoven 3) preset as a starting point I started working on a Vecoven 4 version yesterday… His version didn’t really work for me… Not sure why, but the tables that were included were such a time saver… Now I have most things working…

Here are my questions:

There are now 4 envelopes per tone possible: 3 & 4 are normal ADSRs (which allowed me to happily use the ADSR NRPN control), but 1 & 2 have TIME 1, LEVEL 1, TIME 2, LEVEL 2, TIME 3, LEVEL 3, TIME 4 as parameters… At the moment I just used 7 NRPN faders as I don’t think the DX-7 envelope preset is appropriate, correct?

I tried to reuse the Patch part of the Feinseur’s work as it looked pretty comprehensive… But I somehow cannot get it to work… And I don’t understand why as the sysex information used lines up with the documentations that I have found so far… What am I doing wrong? any idea?

Thank you!

Did you turn on sysex data in the MKS-70 menu?

Yes, I did, thank you for checking @Feinsveur . Cannot figure it out. I was able to adapt your NRPN controls, but seem not able to use the SYSEX.

I’ll have to look it over. The sysex should work on the stock firmware as well.

1 Like

As for the envelopes check my Blofeld preset, where I used the E1’s DX7 style envelopes, but I had to convert between Sysex and CC, and convert the time parameters in rate parameters. This is the lua code used in the script. Might give you inspiration (it works on the Blofeld). 4 functions where needed, and 2 parameter numbers for each control, which I set arbitrarily 4000 apart.

function changeRate(valueObject,value) ---- converts DX7 style rates into ADSR style times for CC use
  local message = valueObject:getMessage ()
  local paramNum = message:getParameterNumber()
  parameterMap.set (deviceId, PT_CC7, paramNum-4000, 127-value)
  midi.sendControlChange (devPort, channel, paramNum-4000, 127-value)

function changeLevel(valueObject,value)  ---- converts SysEx style level parameters into  CC style sustain parameters
  local message = valueObject:getMessage ()
  local paramNum = message:getParameterNumber()
  parameterMap.set (deviceId, PT_CC7, paramNum-4000, value)
  midi.sendControlChange (devPort, channel, paramNum-4000, value)

function changeTime(valueObject,value) ---- converts  ADSR style CC times into  DX7 style SysEx rates
local message = valueObject:getMessage ()
local paramNum = message:getParameterNumber()
parameterMap.set (deviceId, PT_VIRTUAL, paramNum+4000, 127-value)

function changeSustain(valueObject,value) ---- converts  CC style sustain parameters into SysEx style level parameters
  local message = valueObject:getMessage ()
  local paramNum = message:getParameterNumber()
  parameterMap.set (deviceId, PT_VIRTUAL, paramNum+4000, value)
1 Like

Will look into that, @NewIgnis, thank you for this. I’m still a bit scared of lua though.

I don’t see why it shouldn’t, @Feinsveur. I looked at the sysex and it seems right on…

I’d say first get the parsing right, the you can make a working copy where I can try to use the DX7 style EG if you want.

1 Like

I found that this is what I’m sending for instance when changing the U-TONE NUMBER:
00 F0 41 36 00 24 30 01 1D 01 F7

According to the manual the MKS expects messages to start with F0, seems that the E1 prepends that with a 00. Your sysex in the preset starts with the F0 as well, @Feinsveur

Not sure how to proceed. Is that a bug?


There should be no 00 indeed. The Sysex message as programmed should start with 41, E1 should add the F0 by itself

1 Like

Just checked that control in the preset. I noticed the value range is set from 1 to 100 but the default value remained 0 which is out of range.Set that to a value between 1 and 100 and try again.
As for the SysEx json, the F0 and F7 values can be omitted, in which case the E1 will add them. But the latter does not explain the 00 upfront. Maybe the default value out of range is the culprit here…

1 Like

I loaded up my MKS-70 preset and it is working with my synth. The patch section is working as well, with the tone selection and such. I’m not sure why it isn’t working on your end @eusti. For my settings, on the synth itself in the “MIDI” menu, “11 Control Channel” is set to 1 which the preset is set to work with, and “13 System Exclusive” should be set at “RECV” or “ON”.

1 Like

Thank you for checking this for me, @NewIgnis . I appreciate it.
I don’t understand what’s going on then, as @Feinsveur mentions all works well on his MKS-70…

Thank you so much for doing this, @Feinsveur .
I just double checked those settings and they are like you indicated… So bizarre!

For a moment I thought the issue was the new Flash Module that my MKS-70 now has… That somehow the software would address another bank and not the one displayed… But I don’t think that is the case now either…

Oh, well…

Hi Eusti, I downloaded Feinsveur’s MKS70 preset and checked the Upper Tone number control via Midi-Ox.
This looks okay… there is no preceding 00 to see.

I think you are correct, I think that was something Sysex Librarian added to show that it was the first line, @NewIgnis… I’m still stumped… It will load certain sysex patches, but not others… Not sure what is going on… I really would like the sysex to work properly as the synth as way too complex with all 2 layers, 4 dcos and PWM paramters for me otherwise now… :stuck_out_tongue:

Thank you for checking that for me!!! Appreciated!

Look, I don’t have an MKS70 but I 'm glad to help. Can you tell me what does work between the E1 and your MKS70, so at least we know what other kinds of communication are working?

Also; on what MIDI channel is the MKS70 listening?

And third: can you send me the MIDI implementation chart of the instrument?

1 Like

@NewIgnis : Thank you for your generosity! I appreciate it!

I can get the NRPN parameters on the E1 sent to the MKS-70.
I can get SYSEX bulk patch dumps from the Sysex Librarian through the E1 into the MKS-70.

All channels on the MKS-70 (Control, Tone A and Tone B) are set to 1.

Here’s the link to the Vecoven download page

(manual is third from the top). Couldn’t figure out how to link directly.

hi there,

i have a retroaktiv controller that controls the vecoven jx, let me know if i can help any

1 Like