Checksum within sxformat message for Roland Integra 7?
G'day! I've managed to make a sxformat message that controls the Master Level of my Roland Integra 7. I send it a number b/w 0 and 127 and a checksum calculated with an expr object (boy, did that hurt my little brain!) and it all works.
But having looked at the sxformat help file it seems that the checksum can be calculated within the sxformat object itself "using the expr function checksum". Does anyone know exactly how that can be done? I don't NEED to know, y'know? But if the help file says it can be done I'd like to give it my (actually, the forum's) best shot!
Here's my unsuccessful bash at it...
Cheers, Bill
What, no sxformat or expr checksum gurus out there? I'm shocked!
sxformat 240 65 16 0 0 100 18 2 0 0 5 / is $i1 / is 128-(checksum(7,11,1)%128) / 247
one counts from 0 , so adress starts at 7th position in the list, data is at 11th...
rest is known - summ adress + data, pass through %128,
subtract the result
Thanks Source - I learned a few handy things from that. :-)
Sorry for not replying sooner but I wanted to be clear first, and whenever I played with it I got inconsistent results. And I just found out that the Integra 7 will happily accept... wait for it... ANY checksum in the range 0 to 127. And there I was wasting time, thinking the expression with the checksum function had to yield the same result as the working one in the patch I posted. [Groan!]
So I've put a zero there and it works. But I'm a little bit wiser now. Thanks for your help.
You are welcome.
Good that it works at the end, but
it seems that expression in sxformat did not work.
this is formula that must work :
expr (128 -($i1+7)%128)%128
for Integra 7 :
sum of address 2 0 0 5 = 7 + Value 121 = 128 = 0
sxformat ignored last %128
I missed that.
by the way one does not need sxformat for sysex
much simpler is to use a message like
240 65 16 0 0 100 18 2 0 0 5 $1 $2 247
and output it to midiout.
Yep, that's it - that patch works perfectly and makes sense. :-)
It's been a bit of a trip, though! I got the sys-ex message from the synth by changing the Master Level from its panel, assuming it'd be THE message to use for sending Master Level back to it. It included a checksum, hence my reading of "Calculating a Checksum" in the manual.
Then: sxformat object and help file, playing with expressions till I found one that worked, starting this thread in an attempt to find an even better way, more playing with expressions, finding that any random number b/w 0 and 127 works, more expressions, learning that a message can be used instead and finally finally finally finding (in the manual of all places) that the Integra 7 accepts the Universal Realtime System Exclusive Message "master volume". You know, the one it *doesn't* use when sending its master volume?
So after all that it's just a simple message, with no checksum, no sxformat, no expressions... just (for me) [pak 240 127 127 4 1 0 i 247]. Phew! I think I'll go shopping or something; I need a new monitor...
Thanks for your help, Source Audio! I've learned a few things from this and I reckon I'll be ready to make a synth editor one day. :-)
Ha ha, I had enough of such headscratchers along the path.