Sysex help for Roland Tr-6S

Hi all. I’ve managed to get most of the following sysex message working for my TR-6S. It represents the volume control of the bass drum channel (it is accessible via CC, but I’m just using it to test). However, I’m stuck at the checksum.In the messages below the second last byte is the checksum. Can anyone advise?

07:05:37.288 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 01 03 F7
07:05:37.293 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 03 01 F7
07:05:37.297 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 05 7F F7
07:05:37.303 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 07 7D F7
07:05:37.305 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 09 7B F7
07:05:37.309 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 0B 79 F7
07:05:37.313 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 0D 77 F7
07:05:37.317 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 00 0F 75 F7
07:05:37.322 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 02 01 F7
07:05:37.326 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 04 7F F7
07:05:37.329 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 07 7C F7
07:05:37.335 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 09 7A F7
07:05:37.337 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 0B 78 F7
07:05:37.341 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 0D 76 F7
07:05:37.345 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 01 0F 74 F7
07:05:37.349 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 01 01 F7
07:05:37.353 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 04 7E F7
07:05:37.357 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 06 7C F7
07:05:37.361 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 09 79 F7
07:05:37.365 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 0B 77 F7
07:05:37.369 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 02 0D 75 F7
07:05:37.374 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 00 01 F7
07:05:37.377 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 02 7F F7
07:05:37.381 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 05 7C F7
07:05:37.386 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 07 7A F7
07:05:37.407 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 0A 77 F7
07:05:37.407 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 0D 74 F7
07:05:37.407 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 03 0F 72 F7
07:05:37.407 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 02 7E F7
07:05:37.407 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 04 7C F7
07:05:37.409 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 07 79 F7
07:05:37.413 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 09 77 F7
07:05:37.417 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 0C 74 F7
07:05:37.421 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 04 0E 72 F7
07:05:37.425 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 00 7F F7
07:05:37.429 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 02 7D F7
07:05:37.435 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 04 7B F7
07:05:37.437 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 06 79 F7
07:05:37.441 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 08 77 F7
07:05:37.445 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 0A 75 F7
07:05:37.449 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 0C 73 F7
07:05:37.453 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 0E 71 F7
07:05:37.457 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 05 0F 70 F7
07:05:37.463 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 01 7D F7
07:05:37.465 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 03 7B F7
07:05:37.469 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 05 79 F7
07:05:37.474 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 06 78 F7
07:05:37.477 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 07 77 F7
07:05:37.482 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 09 75 F7
07:05:37.486 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 0A 74 F7
07:05:37.508 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 0C 72 F7
07:05:37.508 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 0D 71 F7
07:05:37.508 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 0E 70 F7
07:05:37.508 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 06 0F 6F F7
07:05:37.508 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 00 7D F7
07:05:37.509 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 01 7C F7
07:05:37.514 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 02 7B F7
07:05:37.517 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 03 7A F7
07:05:37.522 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 05 78 F7
07:05:37.526 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 06 77 F7
07:05:37.529 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 07 76 F7
07:05:37.539 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 09 74 F7
07:05:37.540 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 09 74 F7
07:05:37.542 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 0A 73 F7
07:05:37.550 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 0C 71 F7
07:05:37.554 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 0E 6F F7
07:05:37.557 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 07 0F 6E F7
07:05:37.562 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 01 7B F7
07:05:37.566 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 02 7A F7
07:05:37.569 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 03 79 F7
07:05:37.574 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 04 78 F7
07:05:37.578 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 06 76 F7
07:05:37.582 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 08 74 F7
07:05:37.587 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 0A 72 F7
07:05:37.590 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 0C 70 F7
07:05:37.609 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 0D 6F F7
07:05:37.609 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 08 0F 6D F7
07:05:37.609 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 01 7A F7
07:05:37.609 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 03 78 F7
07:05:37.610 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 05 76 F7
07:05:37.614 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 07 74 F7
07:05:37.618 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 09 72 F7
07:05:37.623 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 0A 71 F7
07:05:37.626 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 0C 6F F7
07:05:37.630 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 0E 6D F7
07:05:37.635 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 09 0F 6C F7
07:05:37.638 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 01 79 F7
07:05:37.642 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 02 78 F7
07:05:37.646 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 03 77 F7
07:05:37.650 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 05 75 F7
07:05:37.654 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 06 74 F7
07:05:37.658 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 07 73 F7
07:05:37.662 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 09 71 F7
07:05:37.666 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 0A 70 F7
07:05:37.670 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 0B 6F F7
07:05:37.674 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 0C 6E F7
07:05:37.678 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 0D 6D F7
07:05:37.682 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0A 0E 6C F7
07:05:37.687 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 00 79 F7
07:05:37.690 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 01 78 F7
07:05:37.710 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 02 77 F7
07:05:37.710 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 03 76 F7
07:05:37.710 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 04 75 F7
07:05:37.710 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 05 74 F7
07:05:37.711 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 07 72 F7
07:05:37.715 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 08 71 F7
07:05:37.718 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 09 70 F7
07:05:37.723 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 0A 6F F7
07:05:37.726 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 0B 6E F7
07:05:37.732 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 0D 6C F7
07:05:37.738 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 0F 6A F7
07:05:37.739 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0B 0F 6A F7
07:05:37.743 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 01 77 F7
07:05:37.747 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 02 76 F7
07:05:37.751 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 04 74 F7
07:05:37.754 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 05 73 F7
07:05:37.759 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 07 71 F7
07:05:37.763 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 08 70 F7
07:05:37.766 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 09 6F F7
07:05:37.772 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 0B 6D F7
07:05:37.775 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 0C 6C F7
07:05:37.779 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 0E 6A F7
07:05:37.785 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0C 0F 69 F7
07:05:37.787 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 00 77 F7
07:05:37.791 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 01 76 F7
07:05:37.809 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 02 75 F7
07:05:37.809 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 04 73 F7
07:05:37.809 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 05 72 F7
07:05:37.809 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 06 71 F7
07:05:37.811 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 08 6F F7
07:05:37.815 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 09 6E F7
07:05:37.819 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 0B 6C F7
07:05:37.823 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 0C 6B F7
07:05:37.827 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 0D 6A F7
07:05:37.831 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0D 0E 69 F7
07:05:37.835 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 00 76 F7
07:05:37.839 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 01 75 F7
07:05:37.843 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 03 73 F7
07:05:37.847 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 04 72 F7
07:05:37.851 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 05 71 F7
07:05:37.856 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 06 70 F7
07:05:37.859 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 08 6E F7
07:05:37.863 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 0A 6C F7
07:05:37.867 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 0B 6B F7
07:05:37.872 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 0D 69 F7
07:05:37.875 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0E 0E 68 F7
07:05:37.879 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 00 75 F7
07:05:37.885 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 01 74 F7
07:05:37.887 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 03 72 F7
07:05:37.891 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 04 71 F7
07:05:37.911 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 05 70 F7
07:05:37.911 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 06 6F F7
07:05:37.911 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 08 6D F7
07:05:37.911 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 09 6C F7
07:05:37.911 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 0B 6A F7
07:05:37.915 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 0C 69 F7
07:05:37.919 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 0D 68 F7
07:05:37.923 From TR-6S TR-6S CTRL SysEx Roland 16 bytes F0 41 10 00 00 00 6D 12 10 54 10 08 0F 0F 66 F7

Roland has used the same type of checksum during the years.
Martin has foreseen a checksum function for Roland to use in SysEx controls.

You should find the below explanation in any Roland Synth manual that explains the MIDI SysEx implementation . Here’s an excerpt from the XV5080

(edit : example was wrong, see below for the correct excerpt)

Thanks for this. You mention that Martin has implemented a checksum function - I tried to add that at the end of the message using the visual interface, but wasn’t sure what values I should add for those, or even if it was the right message to add. I assume that if I add the correct start position and length, the calculation should happen correctly, but I’m not sure what the start position and length refer to.

As the example of Roland should have shown the checksum must take into account the address info and the data info of the sysex message. So you need to start at the byte after the message header, including the command byte, and end on the byte just before the checksum itself. Try to figure this out on your device.

Unfortunately the copy/paste function screwed up the Roland example :expressionless:

So here it comes again:

Example of an Exclusive message and calculating a checksum
Roland Exclusive messages (RQ1, DT1) are transmitted with a checksum at the end (before
F7) to make sure that the message was correctly received. The value of the checksum is
determined by the address and data (or size) of the transmitted Exclusive message.

❍How to calculate the checksum (hexadecimal numbers are indicated by “H”)

The checksum is a value derived by adding the address, size, and checksum itself and
inverting the lower 7 bits.
Here’s an example of how the checksum is calculated. We will assume that in the Exclusive
message we are transmitting, the address is aa bb cc ddH and the data or size is ee ffH.

aa + bb + cc + dd + ee + ff = sum
sum ÷ 128 = quotient … remainder
128 - remainder = checksum

<Example 1> Setting CHORUS TYPE of PERFORMANCE COMMON to DELAY (DT1).

According to the “Parameter Address Map (p. 290)”, the start address of Temporary
Performance is 10 00 00 00H, the offset address of CHORUS at PERFORMANCE COMMON
is 04 00H, and the address of CHORUS TYPE is 00 00H. Therefore the address of CHORUS
TYPE of PERFORMANCE COMMON is;

10 00 00 00H
      04 00H
+)    00 00H
=
10 00 04 00H

DELAY has the value of 02H.
So the system exclusive message should be sent is;

F0  41  10  00 10  12    10 00 04 00  02    ??       F7
(1) (2) (3) (4)    (5)   address      data  checksum (6)

(1) Exclusive Status, (2) ID (Roland), (3) Device ID (17),
(4) Model ID (XV-5080), (5) Command ID (DT1), (6) End of Exclusive

Then calculate the checksum.
10H + 00H + 04H + 00H + 02H = 16 + 0 + 4 + 0 + 2 = 22 (sum)
22 (sum) ÷ 128 = 0 (quotient) … 22 (remainder)
checksum = 128 - 22 (remainder) = 106 = 6AH

This means that F0 41 10 00 10 12 10 00 04 00 02 6A F7 is the message should be sent.

Thanks again. I’ll give it a go again tonight.

1 Like

Got it working! In the end this page was helpful to understand where the start of the checksum and what the length is.

1 Like

Glad you sorted that out!
Does the TR-6S respond to those messages when sent to the DIN MIDI IN?
I had the feeling there were dedicated to the TR-6S CTRL device, used by the editor, hence in computer USB mode only.