yes, this way. you will get 7 request callbacks. Say, for the UB-X, you will want to review / use the packet # byte to understand order of the messages.
Hi were you able to figure it out?
Sorry - no. I have not had much time to look at it – been fully busy trying to finish and release the computer app PCM 80 editor. I think that’s stable, so I am starting to have free time to look at other things.
Perhaps how Behringer encoded is not as they describe? I found this online in the Gearspace forum March 2025. I have not verified this, but thought I would share since it might explain why patchname is so hard to find.
"The SysEx Guide for the UB-Xa states
Please refer to File Dump Standard (MIDI 1.0 Detailed Specification 4.2). Pg 41. File Dump.and the MIDI Spec for data packets says
The seven bytes: AAAAaaaa BBBBbbbb CCCCcccc DDDDdddd EEEEeeee FFFFffff GGGGgggg are sent as: 0ABCDEFG 0AAAaaaa 0BBBbbbb 0CCCcccc 0DDDdddd 0EEEeeee 0FFFffff 0GGGggggbut Behringer did
The seven bytes: AAAAaaaa BBBBbbbb CCCCcccc DDDDdddd EEEEeeee FFFFffff GGGGgggg are sent as: 0GFEDCBA 0AAAaaaa 0BBBbbbb 0CCCcccc 0DDDdddd 0EEEeeee 0FFFffff 0GGGggggWhen I take the 8th bit in the other direction, then I get the right values. Verified it with the Patchname. When using the reverse order, I can read the Patchname. When I do it the way as it is described in the MIDI spec, I get cryptic characters."
Picking up this thread again. I have figured out the various sysEx request messages for the UB-Xa D and have them programmed in a test preset. However, the E1 seems to be struggling with the multi-packet structure of the response.
This is what the UB-Xa D sends in response to a sysEx request from the E1 for Patch A 001:
F0 00 20 32 00 01 3A 7F 74 07 01 7F 42 49 4E 20 63 05 00 00 50 61 74 63 68 58 20 41 30 30 31 20 20 20 20 20 00 03 7C F7
F0 00 20 32 00 01 3A 7F 74 07 02 00 7F 00 00 00 00 00 40 7F 20 1E 00 50 7F 7F 7F 00 00 30 00 00 20 06 50 7F 00 48 00 20 38 30 3B 10 3E 14 10 00 30 4C 40 71 40 03 17 40 2F 00 00 00 00 1C 00 00 7F 7F 30 7B 00 13 00 30 7B 00 00 40 56 0C 00 00 00 3F 70 55 00 15 2F 00 1B 00 5A 00 2B 02 00 7F 00 00 00 03 00 01 00 4F 2A 2D 28 30 1A 00 32 10 33 18 20 18 20 02 10 50 2A 00 02 10 00 03 7F 3B 0F 01 03 00 04 00 00 00 00 00 0C 07 02 29 F7
F0 00 20 32 00 01 3A 7F 74 07 02 01 7F 40 00 01 00 01 0C 0C 34 01 34 01 25 48 22 28 4C 00 11 13 28 1B 0C 12 0C 00 21 29 1B 23 0B 01 06 00 00 00 01 00 00 01 40 00 00 02 00 00 01 40 78 7E 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 70 F7
F0 00 20 32 00 01 3A 7F 74 07 02 02 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7D F7
F0 00 20 32 00 01 3A 7F 74 07 02 03 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7C F7
F0 00 20 32 00 01 3A 7F 74 07 02 04 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7B F7
F0 00 20 32 00 01 3A 7F 74 07 02 05 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 03 7F 7F 00 00 32 00 00 4B F7
F0 00 20 32 00 01 3A 7F 74 07 02 06 4F 40 3C 02 00 00 18 00 00 40 30 75 05 00 00 00 42 69 5B 00 00 5E 00 5E 10 60 00 10 3F 16 40 6B 5C 00 06 09 05 0C 00 19 03 70 00 10 00 40 7F 7F 7F 28 05 0C 00 3D 43 3B 45 55 39 3A 3E 43 3E 3D 36 0A 4F 36 48 37 4D 55 62 00 2D 58 61 20 00 00 00 5F F7
F0 7E 00 7B 00 F7
The first is the header file (01). The next 7 are patch packet files (02) numbered 00 - 06, and the last is the EOF.
But this is what the E1 receives:
F0 00 20 32 00 01 3A 7F 74 07 01 7F 42 49 4E 20 63 05 00 00 50 61 74 63 68 58 20 41 30 30 31 20 20 20 20 20 00 03 7C F7
F0 00 20 32 00 01 3A 7F 74 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 70 F7
F0 00 20 32 00 01 3A 7F 74 07 02 02 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7C F7
F0 00 20 32 00 01 3A 7F 74 07 02 04 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 00 00 4B F7
F0 00 20 32 00 01 3A 7F 74 07 02 06 4F 40 3C 02 00 00 18 00 00 40 30 75 05 00 00 00 42 69 5B 00 00 5E 00 5E 10 60 00 10 3F 16 40 6B 5C 00 06 09 05 0C 00 19 03 70 00 10 00 40 7F 7F 7F 28 05 0C 00 3D 43 3B 45 55 39 3A 3E 43 3E 3D 36 0A 4F 36 48 37 4D 55 62 00 2D 58 61 20 00 00 00 5F F7
F0 7E 00 7B 00 F7
The E1 handles the header (01) and EOF ok, but it skips or truncates most of the patch data packets except the last one (packet 06) which it receives correctly. For requests that only have one packet file (like global settings or atrophy profile), the E1 is able to receive the packet fine.
Does anyone have an idea of how to handle the multiple packets? I can’t proceed until I figure out how to get the E1 to receive all the packets. They can all be identified by their packet number 00-06. @oldgearguy ?
Thanks.
John
Attaching the request preset in case anyone has a UB-Xa D they can test on.
How are you handling the incoming messages? If you try to receive them as one big group, that will likely fail.
I’d set up a series of .onResponse() conditions based on the number of packets received and the specific header data. The only question I’d have is whether the E1 received and passes on the separate sysex messages. Maybe just watching the debug coming in at first?
What I’m showing above is from a midi monitor watching what the UB-Xa is sending from its out port and what the E1 is receiving at its in port. Or are you suggesting something different? The E1 appears to be swamped/confused by the stream of packets. I have tried patch.onResponse() and midi.onSysex() but they are just showing me what has, and mostly hasn’t, been received. There is no way I know of to tell the UB-Xa to send packets individually. So, scratching my head.
The E1 has A MIDI monitor/MIDI debug window that shows incoming sysex. If that is showing garbled messages, then the E1 isn’t handling the stream.. if that debug is good then there might be some way handle the incoming flow.
I forgot there is the midi console. Anyhow, on receiving a patch request message the UB-Xa responds with these patch messages:
Header - 40 bytes, Packet 0 - 143 bytes, Packet 1 - 143 bytes, Packet 2 - 143 bytes, Packet 3 -143 bytes, Packet 4 - 143 bytes, Packet 5 - 143 bytes, Packet 6 - 95 bytes, EOF - 6 bytes
The E1 midi console shows me the same things as midiOx and pocket Midi - the E1 has received messages of size:
Header - 40 bytes, ?? - 30 bytes, ?? - 30 bytes, Packet 6 - 95 bytes, EOF - 6 bytes.
So it seems that E1 is not handling the stream of messages. @martin?
Sad face.
It should - eg. the communication between the editor and the controller is a busy stream of sysex messages going in both directions. There is an issue reported, however, that I was not able to replicate in the past. It was about sysex messages getting broken occasionally. I lost a bit of context due to the pause in my work on E1. I will look at it again. How is your UB-Xa connected to the controller? And would you be able to capture the sysex messages and share them with me? Just so that I can use them to replay them on my controller.
I have tried direct connection via DIN and USB host ports. Will pm you the sysEx that the UB-Xa sends. I will also try sending the sysEx to the device port from a computer - which I presume is what you are going to try. Thanks for getting back to me @martin. It means a lot. Best wishes for the future.