I'm messing about with pulling out some SYSEX stuff from my new Prophet-6. I'm running into issues not being able to determine which bytes in the SYSEX payload are what Program Parameters. Since the SYSEX Program Parameters are not specifically documented in the manual, I have started by assuming they must be specified by the NRPN numbers (otherwise I would have expected another SYSEX specific table in the manual)
I've started by trying to extract the Program Names, as the 3 digit display is one hurdle I want to overcome. The NRPN Program Parameter number for the first byte of the Program Name is 236, but I'm finding I can obtain the Program Name starting at byte 107! Way different.
I believe I'm unpacking the data correctly, but I'm open to being shown how I've messed up. I'm using a utility function from ctrlr.org from an existing Mopho panel and it seems to be built into the application's library. (ctrlr.org is cool as sh!t BTW). Besides ctrlr.org saying the Program Names starts at 107, my MIDI Monitor application is also showing the Program Name in ASICII starting _way_ before byte 236 - evening considering raw packing bytes.
I've e-mailed DSI support and the response, I assume, is coming, but is slower than normal. So here is more of what I've done:
I don't think this is a packing vs unpacking problem.
I've done SYSEX dumps changing the first 7 Program Parameters listed in the NRPN table.
Byte 0 of the SYSEX payload is the packing byte (byte 0 after the F0 01 2D 03 request I'm making to dump the edit buffer). I can "flip bits" in it by adjusting the parameters with > 127 values (OSC 1 shape, PW, OSC 2 fine), and it would be "the start of the 8 byte packet" (per the manual)
The NRPN numbers suggest the Program Parameters are, from 0 (zero here being the 0th byte _after_ the packing byte):
0 Osc1 Freq
1 Osc 1 Sync
2 Osc 1 Level
3 Osc 1 Shape
4 Osc 1 PW
5 Osc 2 Freq
6 Osc 2 Fine Freq
But I'm seeing: (again zero being the 0th byte _after_ the packing byte)
0 Osc 1 Freq
12 Osc 1 Sync (there's going to be an extra packing byte in there, but 12 != 1 for sure, so it's probably byte 11)
8 Osc 1 Level (there's a packing byte in there, so really this is 7. 7 != 2 the NRPN)
3 Osc 1 Shape
5 Osc 1 PW
1 Osc 2 Freq
2 Osc 2 Fine
I'm pretty sure I can't use the NRPN Program Parameter ordering for this job. Do the programmers have a handy list they can send me please?