Hello
Can anyone tell me how to find the checksum (the byte before F7) in FmBox voice/drum or ensemble files?
Is it 7bit or 8bit notation, and from where to where will i have to count?
Regards Per
Hello
Can anyone tell me how to find the checksum (the byte before F7) in FmBox voice/drum or ensemble files?
Is it 7bit or 8bit notation, and from where to where will i have to count?
Regards Per
Hi Per,
the checksum is calculated over the data part only (256 bytes)
Calculation (pseudo code):
// data block is located in data[] array
// create sysex string:
Array<uint8> sysEx;
sysEx.add(0xf0);
sysEx.add(0x00);
sysEx.add(0x00);
sysEx.add(0x7e);
sysEx.add(0x49);
sysEx.add(deviceNumber);
sysEx.add(0x02);
sysEx.add(type);
sysEx.add(bank);
sysEx.add(patch);
uint8 checksum = 0x00;
for(int i=0; i<256; ++i) {
uint8 b = data[i];
sysEx.add(b);
checksum += b;
}
sysEx.add(-(int)checksum & 0x7f); // 7bit !!!
sysEx.add(0xf7);
[/code]
Best Regards, Thorsten.
Thank you Thorsten it was just what i needed
and thanks for the Fm Synth its a fantastic piece of work, and what a sound ![]()
Best regards Per