Using 1 tempate to control and parse patches for 2 of the same synths

I am working on this preset:

https://app.electra.one/preset/Dwif6OsyzsM55kwZKxOk

The goal is to control 2 Pioneer AS-1 synths at the same time.

So for synth A and B a separate Device Identifier is created.

This works OK for the NRPN controls.

But when I request a “Patch” both synths are updated.

The AS-1 does not have its Midi channel in the sysex.
You can request the Globals which shows the Device its midi channel.

Am I right that Sysex is not channel bound?

If that is the case how can I make the patch to be parsed only for the synth I
want?

This is the response header

"header": [ "00","40","05","00","00","01","08","10","0F"],

What if I add a function to disable ( corrupt ) the response header for the synth I do not want to update?

“header”: [ “00”,“40”,“05”,“00”,“00”,“01”,“08”,“10”,{ “type”: “function”, “name”: “switchSynth” }],

Any Ideas on this?

1 Like

Yes you are right the Midi channel is not part of the header. Usually.
But the manufacturers of course had to devise a way their customers could buy multiple devices of the same type and still address them separately. The solution must be visible somewhere in the header of the SysEx message, regardless if it is a request or response message. A header typically has 4 parts, each of which may have one or more bytes:

  • the ID of the manufacturer
  • the ID of the model
  • the device identifier within the model (that’s what you are looking for!)
  • the command/response type

Most people only have one instance of a model, so they don’t need to be bothered by that device ID, and then it usually remains a byte of value 0.
Some manufacturers try to offload that complexity from their customer (or from their own support, depends on the point of view), and then they typically use the main MIDI channel as a device differentiator in that header. Nothing wrong with that, as long as you realise it’s a convention the manufacturer made himself.
Others, like Roland, let you set a Device ID within their synths. Again , as long as you only have once instance of that model, nothing to be bothered about. But if you have more than one, each must be set to a different ID, so the Sysex message header will know who is talking or who the message is for.

In your case, take a dive in the manual, and look for an ID or something you could set in the global settings somewhere, but had not to be bothered with so far….

1 Like

Ok I just got my second unit will check the dumps and the device identifier.

If there is a device identifier I will need to add some routine to add the correct one.

If that is the case my AS-1 template will work only for me :frowning:

Thanks a lot for taking the time to explain.

Cheers

Hmm I have my second unit here and in the patch (EDIT BUFFER) dump there is no device id, its the same as my other AS1.

What I am going todo is make a function that reads GLOBALS dump that comes before the EDIT BUFFER dump.
Then Parse the MIDI Channel from there and set the function in the response to enable the correct synth to listen to the patch dump.

Hmm difficult I would also need to disable the patch request for the inactive synth…

If it does not work I will try to use physical MIDI ports.

Provide me a link to the device’s manual if you can?

1 Like

in every sysex response the is a deviceid the issue is that this id is the same, 10.

maybe i am missing something.

It’s crazy, just by looking at the global parameters and the sysEx you could already say ‘Dave Smith was involved’. Part of the sysex way of working for this instrument and the OB-6 or Prophet 6 are very similar.

What’s inside? Looks like Mopho or Prophet -8 voices?

Weird that the device ID byte is indeed foreseen but not alterable. Not via the globals menu, neither via the NRPN settings. A bit odf a downer.

Are you on the latest firmware 1.0.2.1?

An alternative could be you connect both instruments via another path, using midi ports 1 and 2 on the E1 for instance. If you usually connect both instruments via USB, perhaps try by adding an additional DIN MIDI cable between the pioneer directly to another DIN MIDI port on the E1 (other than the one you make music with) and set that pioneer to exchange sysex only via DIN.
It would give you a second physical route to exchange sysex.
You might have to keep the first route as well in parallel for the exchange of channel driven data such as notes, program changes, CC and NRPN…

1 Like

yeah the AS1 is a one voice prophet 6.

alternative path is not an option in my live set.

wonder what about hacking the firmware and change the device id in the firmware and flash it :slight_smile: look way above my skillset but yeah I keep dreaming.

the current scenario posses many issues. If I wil do a patch request i will recieve 2 of them :frowning:

Let me check if the Prophet 6 has the possibility to change the deviceid. perhaps the AS1 will accept this command.

1 Like