Multiple .tx lines
2008-07-08 by rpcfender
Hi all
Strange stuff for those that might be interested, there is a reason for multiple lines in the .tx statement.
Perhaps you all knew this, but it was something new to me.
I recently needed to change the preset on my XV3080 and then down load the preset sysex that was loaded into the edit buffer.
I used the standard bank select/ preset select
$B0 $00 87
$B0 $20 $00
$C0 $0A
Then I needed a Roland sysex message to get the preset data
$F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
As you loose 2 bytes for each .tx statement and I thought that multiple lines were just for neatness I made a single .tx (learn statement in Mark's spec)
.tx $B0 $00 87 $B0 $20 $00 $C0 $0A $F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
but the XV3080 said that there was a bad checksum
The value after the checksum (chk-1 ) gives the starting position of the data to be summed. 6 in my case.
I thought the BCR would look back to see the $F0 and count from there. Not so, it counts from the start of the .tx message
You could count from the the start of the whole message (and make the checksum offset in my case 14) or all you need to do this
.tx $B0 $00 87 $B0 $20 $00 ; $C0 $0A
.tx $F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
Now it works.
Check out Mark's spec on Checksum Defininition
All the best
Royce
Strange stuff for those that might be interested, there is a reason for multiple lines in the .tx statement.
Perhaps you all knew this, but it was something new to me.
I recently needed to change the preset on my XV3080 and then down load the preset sysex that was loaded into the edit buffer.
I used the standard bank select/ preset select
$B0 $00 87
$B0 $20 $00
$C0 $0A
Then I needed a Roland sysex message to get the preset data
$F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
As you loose 2 bytes for each .tx statement and I thought that multiple lines were just for neatness I made a single .tx (learn statement in Mark's spec)
.tx $B0 $00 87 $B0 $20 $00 $C0 $0A $F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
but the XV3080 said that there was a bad checksum
The value after the checksum (chk-1 ) gives the starting position of the data to be summed. 6 in my case.
I thought the BCR would look back to see the $F0 and count from there. Not so, it counts from the start of the .tx message
You could count from the the start of the whole message (and make the checksum offset in my case 14) or all you need to do this
.tx $B0 $00 87 $B0 $20 $00 ; $C0 $0A
.tx $F0 $41 $10 $00 $10 $11 $30 $25 0 0 0 0 0 val chk-1 6 $F7
Now it works.
Check out Mark's spec on Checksum Defininition
All the best
Royce