Per Posted October 22, 2011 Report Share Posted October 22, 2011 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 Quote Link to comment Share on other sites More sharing options...
TK. Posted October 23, 2011 Report Share Posted October 23, 2011 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. Quote Link to comment Share on other sites More sharing options...
Per Posted November 25, 2011 Author Report Share Posted November 25, 2011 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 :thumbsup: Best regards Per Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.