Question About Receiving SysEx Parameters (not patch request)

Sending some parameters via CC and SysEx I see the following:

E1 CC > Synth CC (updates the Synth)
Synth CC > E1 CC (updates the E1 controls)
E1 SysEx > Synth SysEx (updates the Synth)
Synth SysEx > E1 SysEx (DOES NOT UPDATE THE E1 CONTROLS)

This is NOT a patch request. The patch request is already mapped and it works.

For CCs incoming to the E1 I do not need to do anything special. Do I need to do anything for SysEx?

1 Like

Can you elaborate the nature of the Sysex the Synth sends to the E1? I guess you mean it is something different than the Patch Dump…

In any case, for all of the Sysex you want to parse you must tell the how-to to the E1 via ‘edit patch’.

Try the following :

  • I guess you have an edit buffer dump request programmed, right ? So in return you get the edit buffer dump and this works.
  • So now try to have the synth dump the edit buffer, without requesting it first from the E1. This should work too. So the parsing itself is independent from a request E1 => Synth
  • In other words you can program additional parsing processes to whatever the Synth dumps, it does not have to be related with a specific request (but you will relate it to a specific , even inexisting request, as that is the way to add a parsing of an incmoing reply into the ‘Edit Patch’ )

As you can imagine, there is a lot of work involved into processing all kinds of incoming SysEx. That’s why I typically use Sysex only for patch and globals dump. For bidirectional parameter changes, CC and NRPN are way more easy to process. The annoying thing is that some manufacturers (for instance Roland) use other values in their parameters when sent via SysEx as opposed to CC.

1 Like

Thanks @NewIgnis , I was starting to play with SysEx parsing. I know CCs are way easier to use (and faster), but most synths run out of CCs available and start using SysEx, NRPN, or Poly Pressure for the not-so-used parameters. All Roland JD-JV-XP lines use SysEx for ALL of the parameters. That’s where I started to play and try bi-directional communication with SysEx.

Again, thanks for the explanation. I see now I just need to create a response for each parameter using SysEx.

"responses": [
    {
        "header": ["00", "20", "33", "01", "00", "71", "40","23"],
        "rules": [
            {
                "bPos": 0,
                "byte": 0,
                "id": 235,
                "msg": "sysex",
                "pPos": 0,
                "size": 7
            }
        ]
    },
1 Like