Roland MKS-80

@martin any news with regards to my last post?

@markus.schloesser I have sent you a PM with a custom firmware. I think it should resolve the issue. Pls let me know if it works for you. Thx.

https://app.electra.one/preset/9ZIAh5tv75LtHMin9xku check this out :slight_smile:
with working “Tune Request” and functioning “Patch Selection” :smiley:
(that is with the new firmware and implemented by directly editing the epr file as json in an editor, “tune request” will NOT show up in the web preview, only on the Elektra. You also probably shouldn’t edit the “patch” in the web editor)
The Ableton problem is still bugging me (literally)

I’m working on a preset at the moment for an old multi-timbral synth that operates on 6 separate MIDI channels.

The preset is sending bytes using sysex dialog [channel, parameter, value]:

[
“B7”,
“20”,
{
“type”: “value”
}
]

Doing this means the user doesn’t need to bother changing midi channels in E1 for every voice, parameters from all voices are represented individually and mixable on 1 page.

Is this not advised? using the CC option in the editor, I can’t attribute a specific channel to a specific fader or button. it is only set globally

My E1 hasn’t even shipped yet so I haven’t really tinkered with what works and what feels good

Hi James,

welcome to the forum!

Please take a look at the documentation, sections about Devices and managing the devices in the editor. You can use up to 16 devices in one preset. For a multi-timbral synth that uses 6 channels you can setup 6 device, each having one of the channels assigned. Then use the devices for you controls.

FYI Ableton confirmed that this is a thing not implemented in Live. I called it a bug, and am in ongoing conversations with them about this

1 Like

Ableton has confirmed that they also see this as a bug, it will go into their bugtracker. They can’t tell when it will be fixed, but will inform me

1 Like

@martin has something changed in this regard? Both my old hacky way and the new way (with a “Tune” button") do not work anymore. Midi-OX does not see anything being sent

I am nearly done building a maxforlive device for the MKS-80. Stage 1 is to be able to edit parameters from Ableton > MKS80, Stage 2 to also parse what’s coming from the MKS80 in order to properly show param values AS THEY ARE in the synth. As this will directly benefit the Electra One MKS80 preset as well, I am posting this here as well :innocent:

2 questions and 1 remark:

  1. changing the (upper/lower) TONES is received by the MKS (nice fun fact, the MKS midi-thru’s all data that is valid to OUT again, which is a nice way of finding out, if what you send is valid), but the TONES themselves do not change. Does anybody know why?
  2. For stage 2: When I send a program change, the MKS replies with sysex. I though that might be the params and values but not sure as what is coming bacl looks strange
    007581F1 2- -- F0 Buffer: 75 Bytes System Exclusive SYSX: F0 00 21 45 7F 00 73 65 6E 64 4D 65 73 73 61 67 65 3A SYSX: 20 70 6F 72 74 3D 30 2C 20 63 68 61 6E 6E 65 6C 3D 31 SYSX: 2C 20 74 79 70 65 3D 70 72 6F 67 72 61 6D 43 68 61 6E SYSX: 67 65 2C 20 70 72 6F 67 72 61 6D 4E 75 6D 62 65 72 3D SYSX: 31 32 F7
    in dec:
    7700977 2- -- 240 Buffer: 75 Bytes System Exclusive SYSX: 240 0 33 69 127 0 115 101 110 100 77 101 115 115 97 103 101 58 SYSX: 32 112 111 114 116 61 48 44 32 99 104 97 110 110 101 108 61 49 SYSX: 44 32 116 121 112 101 61 112 114 111 103 114 97 109 67 104 97 110 SYSX: 103 101 44 32 112 114 111 103 114 97 109 78 117 109 98 101 114 61 SYSX: 49 50 247
    Any idea what that is? The sysex spec (attached) does NOT show any F0 00 21…
    MKS80syx.txt
    .
  3. I found a missing entry for HOLD mode, there is a 3rd one called “MIDI”

For question 1: Just an idea, but some synths do not apply received parameter changes, unless the synth is in edit mode. check if that is the case here with the MKS.

For question 2 : F0 00 21 45 … 00h 21h 45h is the manufacturer ID and in this case it is… Electra One S.R.O :slight_smile: So your are looking at a sysex from the E1 itself. @martin can you shed some light ?

  1. Good idea (and I know about that from the DX7), BUT all other Param value changes do work immediately.
  2. Fuck :joy::joy: thanks! Never would have thought of that. Will investigate further if there’s a edit buffer or patch dumb request

They are the E1 log mesages, these that one can see in the Electra One console. They are transmitted as sysEx messages.

I’ve run into this before as well. On the Mac, I have to go into MIDI Monitor and turn off the Electra One Control port. In fact, I’m in the middle of editing a Modor NF-1 patch dump that has the Electra One messages embedded in it because I forgot to clear that port before doing the dump (and I can’t re-dump since the OS update wipes out patch memory).

The MKS-80 is one of those early Roland devices that uses a handshake to handle the sysex messages. So you send it a message, it sends back an ‘ACK’, you send it the next, etc.

There’s also those cryptic statements that the patch number in Mode III is the tone number in Mode II (front panel switch modes). See the spec, section 1.3

UPDATE:
I have found a couple of old tools, some of them even with the source code, that helped me immensely in understanding what’s going on and the lingo that Roland used. So for example the “request program buffer” is named by Roland as “Request a file (RQF)”, this is:
Hex Byte Description
----- ---------- ----------------------------------------
a F0 1111 0000 Exclusive Status
b 41 0100 0001 Roland ID #
c 41 0100 0001 Operation code
d ‘0n’ 0000 nnnn Unit # : MIDI basic channel, nnnn=0 - 15
where nnnn = 0 for channel 1
e 20 0010 0000 Format type
f 4D 0100 1101 M :
4B 0100 1011 K :
53 0101 0011 S : - File Name in ASCII
2D 0010 1101 - :
38 0011 1000 8 :
30 0011 0000 0 :
g ‘cs’ 0000 0000 Check Sum
h F7 1111 0111 End of System Exclusive
So in my case:
HEX: F0 41 41 00 20 4D 4B 53 2D 38 30 00 F7
DEC: 240 65 65 0 32 77 75 83 45 56 48 0 247

Sending that to the MKS-80, the mks replies with what the manual describes as “5.1.3 Data (DAT)”, which is 16 messages.
From the manual: “Each DAT message consists of 4 sets of the Patch and Tone data. Each data set consists of 62 bytes total — 39 bytes for Tone Parameters of a number and 23 bytes for Patch Parameters of the same number. These parameters are sent in sequence of the 'Tone Number’s and 'Patch Number’s. 2 DATs are sent for each ‘Bank’. In normal operation, 16 DATs are totally sent for all 'bank’s (1 - 8).”

Transfer end is then indicated by SYSX: F0 41 45 00 20 F7 (240 65 69 0 32 247)

Questions:

  1. I assume this is ONE patch? And not all of the ones in the current bank? (not sure)
  2. After the intro (F0 41 42 00 20) it continues with 1C (28). I assume all the following are just the actual values of the params?
  3. So after sending a program change, I would then request that program number and parse it. Probably with a bit of delay? How much?

It looks to me like the MKS80 is sending you the content of all 64 patches .
I think currently you’ll have issues if the MKS80 sends you 16 messages. The patch editor expects only one, as far as I know.
http://www.synthzone.com/midi/roland/mks80/MKS80syx.txt
But by the looks of the doc, the MKS80 allows you to transmit:

  • single parameters (IPR) (48 for a tone, and another 15 for a patch)
  • when performing a program change: 5 messages in a row (1 for patch number, 2 with all of its patch parameters and another 2 for all of its tone parameters)
  • whe performing a tone number change: 2 messages in a row (1 for patch number, 1 with the tone parameters)
    But all these above seem not to be requestable, but originate from the MKS80 itself. Not very useful.

So , it seems the only sysex message you can request from the outside into the MKS80 is the full dump you described…
At least based on the doc I attached, I haven’t got an MKS80 myself.

1 Like

Is there something to be done with the MKS-80 presets to get them working in firmware 3.0? I’ve just finished rewiring my synth setup and my two prized rack synths (matrix 6r and mks-80) but I’m not able to get them to be controlled. I made a test button to send a note-on to make sure my channels are set up correctly, but not seeming to get sysex parameter changes. I do have some intermediate midi routing and one last thing I need to try is just connecting the electra directly to the mks-80 over din midi and see if that works but I also wanted to check here.