I think the comments explain it:
"188 double bytes data for the values and 8 double bytes for the patch name"
What is meant by "double bytes" is some form of encoding bytes (8-bit values) into sysex data, which is a string of 7-bit values. Often this means splitting a byte into a high nibble and a low nibble (4+4 bits) but I don't know if that's what the Xpander does.
"188 double bytes data for the values and 8 double bytes for the patch name"
What is meant by "double bytes" is some form of encoding bytes (8-bit values) into sysex data, which is a string of 7-bit values. Often this means splitting a byte into a high nibble and a low nibble (4+4 bits) but I don't know if that's what the Xpander does.
Also see the second comment:
"6 (intro) +196*2 (data+name) +1 (EOX) = 399"
"6 (intro) +196*2 (data+name) +1 (EOX) = 399"
So 7 MIDI bytes of framing, leaving 399-7=392 sysex data "bytes" (7-bit values). Divide that by 2, and you get 196 proper bytes (8-bit values).
2018-05-22 22:46 GMT+02:00 cappy2112@... [xpantastic] <xpantastic@yahoogroups.com>:
I'm trying to understand the calculations that the single patch browser (included with Xplorer) ueses.
Looking at XpanderSysEx.h
// Single patch data sysex length is 399 bytes // 6 bytes for sysex intro: F0 10 02.... static const int PRG_DUMP_DATA_FOLLOWS_INTRO_LENGTH = 6; // 188 double bytes data for the values and 8 double bytes for the patch name static const int PATCHNAME_LENGTH = 8; static const int OBWORDS_DATA_LENGTH = 196 - PATCHNAME_LENGTH; // 6 (intro) +196*2 (data+name) +1 (EOX) = 399
I understand that PRG_DUMP_DATA_FOLLOWS_INTRO_LENGTH is for the Sysex cmd overhead to request a single patch, however, I don't understand why he subtracts the patchname length from 196, when the patch name is part of each single patch.
196 & 2 + 8 = 399 bytes, which is correct
What am I missing?