Wrong number of bytes received from Program Edit Buffer Data Dump

Hey all. I'm receiving 4688 bytes as a result of sending the 'request program edit buffer dump' sysex message on my Prophet XL. According to the user guide I should be receiving 4690.

If I dump the current program (Globals => Dump Current Program) then I get 4690 bytes as expected.
If I send the 4688 bytes that I received as a result of sending the 'request program edit buffer dump', it changes to the expected program with the expected edits to that program (if any), except the bank number & program number don't change at all.

For example, if I:
  • store the 4688-byte result from a 'request program edit buffer dump' sysex message for the program U1P1
  • change program to U2P2
  • send the stored 4688 bytes to the Prophet XL
The program seems to load correctly in every way except the program number reads U2P2 (when it should read U1P1). Interestingly, the program name does correctly load.

I've tried restarting the Prophet XL, re-installing its OS (2.2.0.0.0), and sleeping on the issue. I keep getting 4688 bytes in response to a 'request program edit buffer dump' sysex message. For reference, the exact hex message I send is "F0 01 30 06 F7"

Does anyone know why I'm missing two bytes? And maybe what I can do to fix this?
I've attached a copy of the program edit buffer data dump I get for an un-edited F1P1. I ran it against an online diff checker for the program data dump for program F1P1 but there were too many differences for me to decipher.

Re: Wrong number of bytes received from Program Edit Buffer Data Dump
« Reply #1 on: June 07, 2021, 07:58:18 PM »
Dump current program and dump edit buffer are two different things, and they result in two different SysEx replies.  Appendix E documents these different replies as Program Data Dump (4690 bytes) and Program Edit Buffer Dump (4688 bytes.)  The fourth byte is what tells the Prophet X which you're sending it.  It's a 0x02 for a Program Data Dump followed by bank and program number, or 0x03 alone for an Edit Buffer Dump.  They both follow up with the same 4683 bytes of actual data representing the program state and wrap up with an 0xF7 to mark the end of the dump.

Re: Wrong number of bytes received from Program Edit Buffer Data Dump
« Reply #2 on: June 07, 2021, 10:42:37 PM »
Thanks! That makes sense, so essentially the two missing bytes are the bank and program number. I see where the bank & program number follow the 0x02 in the Program Data Dump. I wonder why they're not included in the program edit buffer data dump, and I wonder why my appendix E says "4096 bytes expanded to 4690 MIDI bytes in 'packed MS bit' format" under Program Edit Buffer Data Dump. Oh well.

Re: Wrong number of bytes received from Program Edit Buffer Data Dump
« Reply #3 on: June 08, 2021, 08:30:47 AM »
I wonder why they're not included in the program edit buffer data dump,

Two different operations. When you send the Program Data Dump data, the patch loads into the specified bank/program number. When you send the Program Edit Buffer Dump data, the patch loads into the current bank/program.

Quote
and I wonder why my appendix E says "4096 bytes expanded to 4690 MIDI bytes in 'packed MS bit' format" under Program Edit Buffer Data Dump. Oh well.

Because it was a typo. That's been corrected in the Prophet X User's Guide, Version 1.3, posted in February 2021. It's linked in the Sequential support Prophet X/XL sections. Though, it's possible that 4683 should be 4682 + a checksum byte (that may be ignored) outside the packed data, if I remember correctly (and assuming my code for unpacking was correct).
Jeff Kellem—Typeface designer, Composer, Pianist, Analog synths, Dancer
ASMAC (American Society of Music Arrangers and Composers) Board Member
https://1403.slantedhall.com/ | https://slantedhall.com/ | https://asmac.org/