How to write a patch back to any synth, especially the DSI Mopho?

I found out my second hand Mopho has an ill functioning write button :frowning:. I desoldered it yesterday but no avail, the button itself is in good shape.

So I was wondering how I could use the Electra One to overcome such issue.

I think there are three ways, and I wanted to know from the forum if anyone already has experience with one or the other.

  • Perform a SysEx write request. Unfortunately I have no info if such a SysEx command exists for the Mopho. If it would exist, it is certainly the easiest way to write a patch.
  • Reconstruct the full SysEx string based on the settings of all parameters in the E1. I don’t think this is a good approach, as it would imply you need 100% of all data in the original SysEx parameter data parsed and stored somewhere and then reassembled in the proper way. The amount of programming involved might also be stressing for the E1.
  • First perform a SysEx “Request Program Edit Buffer Dump”, receive the SysEx “Program Edit Buffer Data Dump”, store the 293 MIDI Bytes content as one string, and then retransmit as a SysEx “Program Data Dump” to a particular bank and program.

Wouldn’t the last method be the most universal ? I mean we could apply this method to most synths, no ? Anyone has already done this and cares to share his logic?

I’m looking to implement the third option, via a callback function like

function midi.onSysex (midiInput, sysexBlock)
local blockReceived = sysexBlock
print ("blockReceived "…sysexBlock.getLength(sysexBlock))

If I foresee some more variables, I might teach the lua which strings to store and which to let pass.

What I want to do is capture the 2 byte strings, received as an answer to F0 01 25 06 F7:


Do remark only the first one starts with F0 and just the second one ends on F7. When I send out my own SysEx strings, the E1 should not be adding additional F0 at the start of F7 at the end. I’m not sure that was already possible. If it is not then I 'll have to forget using the E1 as a patch writing device for the Mopho for now.

note that the first block is 256 bytes which is probably someone’s buffer size limit.
If there was a way to “receive until N bytes” or “receive until end of sysex” type operation available, you could just stack up the buffer(s) received until you had a full dump.

same with sending out data.

Hmmm :thinking: indeed getting in the right dara is no issue. I’ll try if I can construct a sysex block of let’s say 290 bytes and get it sent out

1 Like