First post, by RegTheEvil

User metadata
Rank Newbie

Re: Re: How to send my own text to MT-32

Lennart wrote on 2007-07-01, 20:40:
I've been trying to get my own messages displayed on the screen as well and I managed to do it. The Checksum error that you get […]
Show full quote

I've been trying to get my own messages displayed on the screen as well and I managed to do it. The Checksum error that you get is quite normal: the checksum is in fact a byte which is calculated by calculating the sum of previous bytes of the message. If you edit the message that will be displayed on the screen, the checksum should be changed as well. If the MT-32 detects a checksum that just isn't what it is should be (i.e. the sum of the bytes doesn't match the specified Checksum-byte), it assumes that the transfer has failed and displays that error. So in order to display your own messages you need to be able to calculate that checksum.

A message for the MT-32 LCD-screen consists of the following parts:
F0 (start of sysex-message)
41 (Roland manufacturer ID)
10 (device ID)
16 (model ID)
12 (command ID)
20 (20 00 00 indicates that you want to display something on the MT-32 screen)
Then there are 20 bytes in total that make up the 20 characters that get displayed on the LCD-screen. Each byte is in hex, so you must know what the HEX-code is of every character. Just Google for "ASCII-HEX converter" and you should find some sites, where you just input regular text and get the hex-codes back.
Then comes the checksum message, which is the sum of 20 00 00 and the bytes from your text message. I personally don't know how to manually calculate it, but just Google for "Roland checksum program" and you should be able to find something. Type 20 00 00 + the bytes from the text into a program and let it calculate the checksum for you.
F7 (end of sysex-message)

I hope I've been of any help and I wish you
F0 41 10 16 12 20 00 00 20 20 20 20 20 47 6F 6F 64 20 6C 75 63 6B 21 20 20 20 20 20 27 F7
Edit: I put in an extra space by accident, this message should work now 😀

=) Thanks a bunch! I recently acquired MT-32 unit (old modl) and tried to figure lcd messages my self and I was way off!! I found this thread and as suggested, searched for tools that can help me write my own messages and used this link (https://www.scadacore.com/tools/programming-c … sum-calculator/) to translate ASCII to HEX values and calculate the checksum remainder. Seems pretty good site since you can do everything with that one tool. You can translate AHCII to HEX, HEX to AHCII and calculate checksum. (=

Last edited by Stiletto on 2020-03-31, 09:14. Edited 1 time in total.

AT2 & other music made by me + miscellaneous stuff
Comics made by me

Reply 1 of 2, by Lennart

User metadata
Rank Newbie

Glad to hear that my old post has been useful to someone all these years down the line 😄

Thanks for sharing the link to that site, it's really useful! 👍 Like you said, you can do everything with just that site.

To clarify, this is how you can use it:

  1. Type the 20 characters of your message in the ASCII Input field. Pad with spaces if necessary.
  2. Press the AnalyzeDataAscii button to convert to Hex.
  3. Type 200000 in front of the data in the Hex Input field.
  4. Press the AnalyzeDataHex button to calculate the checksum.
  5. Use the checksum value called CheckSum8 2s Complement for your sysex message.