Roland MC-303 Checksum in SXformat

Nov 11, 2013 at 1:35pm

Roland MC-303 Checksum in SXformat

Hey Guys–

Several months ago I asked you guys to help on a DX7′s sysex formatting. The help I received was incredible.

Now I’m here again, with another sysex midi implementation question. I’ve got this old Roland MC-303 whose sysex I’d love to fiddle with. After perusing the manual, it seems that there are sound parameters you can control via sysex that aren’t accessible on the interface.

The problem: I’ve never worked with checksums before.

The DX7 sysex messages were shorter (like 7 bytes or something). The sysex messages on The Roland are typically longer, including the checksum, for instance:

| F0 41 10 00 03 12 | 00 40 18 02 | 07 | 1F | F7 |
Header | Address | Data | Chksum | End

In the sxformat example in max, the example message seems to be for a DX7. The checksum on the MC-303 adds the address and data together, and subtracts it from 80(hex). How do you write a function that calculates this kind of message?

In short, I just wanna be able to fiddle with sysex parameters through max via a midi controller.

My apologies if this has been answered elsewhere; I was unable to find anything particularly specific to this question.

Thank you!

#270827
Nov 12, 2013 at 5:36am

it’s spelled out here on the 1st google hit !
(i can see you’ve maybe even been there)

http://www.synthman.com/roland/support/supplementalnotes/SUPNOTES/MC303MID.html

you should do your maths in *decimal* anyway as max converts into hex when you send it out
i just create raw midi data so i cannot comment on using sxformat
so your sysex strings go to [midiout] starting with 240[0xF0] and ending with 247[0xF7]

i’ve done the following as an investment in your sharing the ‘proceeds’ here when you’re done, hope it helps

<code>

– Pasted Max Patch, click to expand. –

</code>

#270947
Nov 12, 2013 at 8:11am

Um, wow? Thanks, a lot!

Since there are a few objects here that I’ve never used, it’ll take a bit of messing around to wrap my head around this well organized, good-lookin’ reverb macro example that you’ve provided. Thank you!

Yes, I’ve been to that site; it’s a good resource. It seems to be, more or less, a transcription of some of the MC-303 documentation.

Question: You know in your example how you provided a drop down menu with the various reverb options in it? I am guessing that is sending a value from 0 – 7? What if the particular sysex parameter that you want to control could take a value from 0 – 127? Could you just replace the drop down menu with a number box?

#270960
Nov 12, 2013 at 10:58am

yep – the example on the left (it virtually duplicates the guts of template patcher) does just that with a value limited to 7, just change that value to 127 ! (also change the parameter address list ! e.g. Reverb_Send for Part_1 is 00 40 01 22, the available range is 0-127 ) (00 40 02 22 for Part 2 and so on)

the example i provided is an overly detailed way to do the formatting task – i just thought it’d help you see what you need to do more easily and establish how to assemble the other synth parameters – if it’s clear there’s a better chance you’ll knock up something helpful to give life to this currently unloved device on my shelf !!

do post back if you assemble something you’re happy to share

it’s an unusually deep midi implementation though

i’m excited because it seems to allow non-western tunings : – ]

#270998
Nov 13, 2013 at 11:14am

Yeah I am really surprised at how deep the midi implementation goes. Pretty surprising as this thing generally gets written off as a mere rompler. Can’t say why exactly, but I love this machine.

I can’t wait to report back!

Thanks so much.

#271124

You must be logged in to reply to this topic.