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?
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)
end
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)
end
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)
end
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)
end
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
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…
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”.
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…
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… http://www.vecoven.com/superjx/flash/flash.html
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…
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?