[Preset] OB Matrix-1000 / Matrix-6 with patch request and program change

Hi, based on @Feinsveur 's work I created a version with patch request and program selection / browsing.

I have a Matrix 1000 V1.20, so it would be interesting if someone with a Matrix 6 could test it. I expect it to return the modulation matrix as well when using the patch request (right upper button). Let me know if there are still errors to correct.


I always passed the seduction to have a Matrix 1000 for the lack of editing sounds without software… But now, having the ELECTRA and such a nice worked out preset I really start thinking to get one :slight_smile:

1 Like

It is a totally different experience to actually ‘see’ how the sound is made up and compare it with what you ‘hear’, aiming a sound to what you have in mind become so much easier. Yesterday I layered my Matrix 1000 (not really heavy in the low end) with my DS8 (suffering from a bit of FM aliasing in the high end), and suddenly these two instruments togehter were boosting each other’s strengths and hiding their weaker points. Amazing!

I’ll wait for the new version of the E1 to further built on the preset, but my gut feeling is that the inspiration boiling up will ask for faster saving of patches, for insight in patch names, for copying and syncing of elements (from one EG to another) and patch initialisation possibilities. Just not yet today!

Well, first step will be trying to get hands on a Matrix 1000 :wink: but I know exacly what you mean with the different experience. Had the same thing happening with my MKS-70. It turned from a “black box” to an instrument!! And even the DX-7II came back to live, have done more new sounds in 1 month than in several years before having the ELCTRA controlling it!!

1 Like

@Newlgnis Nice update! Setting up the patch parsing is way out of my skill level and time.

I’ve tested the preset out on my Matrix 6. The Electra can receive and update the current patch values including the Mod Matrix, however it needs to be set up a particular way every time you power the synth on. I have the setup listed in my preset info. It is still not possible to edit the Mod Matrix remotely which is a limitation of the space on the firmware I guess.

As far as I can tell selecting patches on the synth itself doesn’t send parameter values, and I don’t see any option in the menus to set it up that way. The only way to send the current patch to update the Electra values is to go to the “Master Edit” menu and select the function to “Send Patch” there. I don’t get any response when using the “Patch Number” with “Patch Select” on the Electra side of things.


most synths will not sent a patch dump spontaneously when you change the program, so that is normal (and also probably for the best).
I haven’t provided an auto patch dump request when you perform a Patch Select. But I will in a later version. For now, you need to request the patch dump via the right upper button of the E1. Clicking should suffise. Try it out and let me know if that works.

Be aware the control of the global parameters is not finished either.

l look forward to your feedback

1 Like

I’ve updated the preset for the Matrix 1000. Electra One App

It now automatically requests the patch data, ànd it hides all irrelevant parameters. That makes it much faster to interpret how for instance the mod matrix is set up because you only get to see what is really used.

Try if you now can control the Matrix 6 from the E1 when changing patches?

1 Like

And version 1.6 now also reads global parameters but it doesn’t store them yet

1 Like

Actually just created version 2.0. Now the ‘Globals’ pages allows you to save the edited patch that resides in the buffer of the Matrix into one of the patch memories of banks 0 and 1. For now you need to take away the memory protection yourself.


Sorry for the late response. I’ll give this a test run on the Matrix 6 as soon as I get some free time.


I am intensively using your Matrix 1000 preset (which is love and is giving my Matrix 1000 a second life) but I am having a problem with the patch request feature. When sending the request from E1 to the Matrix 1000 the values on the E1 are updating but unfortunately they do not correspond to the real value used by the Matrix 1000.
I could verify this by ear and then I made sure of it using a Max for Live plugin that also parses the edit buffer dump from the Matrix 1000. I might have do something wrong but I can’t really see how.
(E1 firmware v2.2)

Edit : (Matrix 1000 firmware Tauntek 1.20)

After analysis of the logs I suspect that there might be something going wrong when calculating the “resulting in parameter value” value.

Here is a link to the sheet i made to analyse the values:

Here is my E1 console log file of the patch 225 dump request:
matrix 1000 patch 225 log.txt (147.0 KB)

First of all, thank you for making this preset @NewIgnis, you’ve done an incredible job with it.

I’m using it with a Matrix 6 and a 1000. Testing with the 6, the Patch Request does in fact change the patch, but the Electra doesn’t parse any values.

I commented out the last few lines of “requestIt” and replaced it with this to get it working on the 6. The userbank has to be set to “1” or it will dump everything out instead of just one patch.

midi.sendSysex (devPort , { 0x10, 0x06, 0x04, bankNum, progNum})
midi.sendProgramChange(devPort , channel , progNum)

Another nice thing would be to set the Quick Edit mode when a value is touched, but I haven’t figured out how to chain together the sysex yet. For now I added a button:

Go to Quick Edit Mode

@mIIwaukee So in your case the Matrix 1000 is working fine with the preset, but your Matrix 6 needs a change to the way it uses banks, and needs a button to go into edit mode?

Can you send me a link to your preset you use for the Matrix 6, and I 'll try to recombine them in one preset. I haven’t got a Matrix 6 myself, so it is ideal of you could provide me such input. I’d like to build in a preselector to swap between Matrix 1000 and Matrix 6 behaviour if doable.

How many banks does as Matrix 6 have ? How many patches per bank? What banks are read only?

Before going into details per parameter, you must know I needed to implement 2 tricks into the preset to ensure the parsing send to the M1000 was well received, and the data send by the Matrix into the electra was first being parsed, before the Electra updates its controls. Because if the controls are first updated while the parsing is still happening in the background, you’ll see the parameters of the previous patch you requested, instead of those of the new patch. That could explain what you see.

Check out what happens if you apply the Patch Request button multiple times (so remaining on the same patch. Could it be the second time you press, you get to see the right parameters ?

To avoid it, check/set the following first:

  1. set the device rate in the Electra at at least 10 ms, maybe you need to use 20 ms.

  2. In the lua code I had foreseen an artificial wait time, based on amount of ticks elapsed, to ensure the values are only updated after all the parsing is done. In functions “requitIt” and “bankRequest” you will find waiting instruction “waitT(500)”:


Increase their value heavily to for instance waitT(5000) and check if you get to see the right parameter settings after requesting a patch. That will take more time, so if this works, then start reducing those values to 2500 then 1250 then 700 and keep the smallest one that works.

1 Like

I’ve created version 2.1 Electra One App

The idea is to ensure you can change between Matrix-1000 and Matrix 6 behaviour

v2.1 brings:

  • removed a bug,
  • added Matrix-6 features (go into edit mode)
  • added a Switch Model knob between Matrix-1000 and Matrix-6.
  • changed default modulation controls to blue color (see screenshot)

@mIIwaukee Can you check if this ‘Choose Model’ knob allows you to go into Matrix-6 mode?
Can you check if it works properly as well, when in split mode ?
Be aware: do set the right MIDI channels in the first lines of the lua script:

matrix1000Channel = 11 – set MIDI channel for Matrix-1000 here
matrix6Channel = 6 – set MIDI channel for Matrix-6 here


1 Like

Try out the new features. I haven’t got a Matrix-6 myself, but according to @mIIwaukee if you first go into edit mode with the ‘Matrix-6 Edit’ pad, the parsing should now work.

1 Like

Hi @NewIgnis and thank you for your answer.
So I tried to request the patch 2 times but I still had the same problem.
Then I thought about what you said and it made me realised that I was receiving the SYSEX (incoming from the Matrix 1000) to the E1 MIDI port 1 and 2 simultaneously.
I was thinking that an E1 preset is only receiving data from the same MIDI port the parameters are routed to, and ignore any MIDI coming from the other MIDI port. Seems I was wrong because now all is working as it should. Thank you so much, I hope I did not make you loose time on this. I just upgraded to the v2.1 as well. Thanks again!

1 Like

Thanks much @NewIgnis,

The Patch Request needs an adjustment to the code for the M-6
(function: requestIt)

 if visible1000 == true then
        local bankNum= parameterMap.get (deviceId, PT_VIRTUAL, 6032)
        midi.sendSysex (devPort , {  0x10,  0x06,  0x0A, bankNum})
   elseif visible1000 == false then
        local bankNum=0x01
        midi.sendSysex (devPort , { 0x10, 0x06, 0x04, bankNum, progNum})
    midi.sendProgramChange(devPort , channel , progNum)

Backlog Ideas:

  • Would love it if the Matrix-6 Edit button also changed the Model to the M-6
  • Pull and display the patch name from the M-6
  • Patch Save from Mod Matrix screen when in M-6 mode
1 Like

midi.sendSysex (devPort , { 0x10, 0x06, 0x04, bankNum, progNum})
should just be
midi.sendSysex (devPort , { 0x10, 0x06, 0x04, 0x01, progNum})