[AH] Xpander/Matrix-12 Display Command (SysEx)

From Brian Willoughby
Sent Mon, Oct 29th 2018, 04:24

Hello all,

Here=E2=80=99s something that has baffled me for decades. Has anyone =
been able to successfully change the Matrix-12 or Xpander display via =
MIDI, using the Display Command described in the manual?

I managed to implement a librarian that can pull all presets from a =
Matrix-12. So, I know that my code can generate a SysEx message that the =
Matrix-12 can understand. But, for some reason, sending a Display =
Command is completely ignored. It=E2=80=99s never been a priority to get =
that working, but I can=E2=80=99t understand why it wouldn=E2=80=99t =
work.

If anyone has been able to do this, on an Xpander or a Matrix-12, =
especially the latter, then please help me figure out the secret.

Brian Willoughby

p.s. The Xp/M12 SysEx has no way to write a full patch to the edit =
buffer. You can only overwrite one of the patch memories. I managed to =
find a way around this. My goal was to avoid erasing one of the memory =
locations just so I could audition a (potentially boring) patch before =
committing it to =E2=80=9Cpermanent=E2=80=9D storage. The solution is a =
giant subroutine that reads a single patch from the librarian database, =
and then goes through every since parameter, one by one, sending page =
edit commands to duplicate the settings. This actually works, and =
basically sets the Matrix-12 as if you had manually entered the patch in =
the edit buffer. It makes no permanent changes unless you decide to =
store. When first implemented, the code ran too fast for the Matrix-12 =
to keep up, so the patch would have lots of random parameters missing. =
The trick turned out to be a 75 millisecond delay between each SysEx =
edit message. Even with the delay, and the large number of parameters, =
it=E2=80=99s still basically =E2=80=9Cinstantaneous=E2=80=9D to select a =
patch from the librarian and then be able to hear it auditioned on the =
synth. Considering how much communication is going on in that feature, =
I=E2=80=99m very surprised that something as simple as the Display =
Command would not work. I must be missing something very simple.