MODEL ID bytes length

+2 votes
asked Jan 12, 2013 in Suggestions by anonymous
Yeah, I got an email about that today from a user. I'll probably just continue down the current road and add 3 and 4 byte support soon. Thanks anonymous!
Yes, I think that 4 bytes for Model ID is enough, for the moment, and will cover several users.

♪♫♪
When will the 4 Byte device ID for checksum calculation be available?
I'm having an issue with the GP-10 (id: 00 00 00 05)
Thank you!

1 Answer

0 votes
Does anyone how to get things going with the Roland VG-99?  I have a great layout going but can't get the checksums to come out right. I'm wondering if the model ID byte length is the culprit?
answered Jan 15, 2013 by bazza (210 points)
Ah, I just answered my own question. I found the MIDI Implementation chart for the VG-99, and even though it's mostly in Japanese there's enough English to determine the the VG does indeed have a three byte model ID, with a value of 00 00 1C.  Does anyone know how to make these sums come out right, or do I need to wait for an update on this particular feature?

I'm brand new to Midi Designer and really rusty with sysex, so thanks in advance for any advice.
Yes. The Model ID of VG-99 is 00H 00H 1CH.

Roland does not use "Sum" but "Checksum" as always.

Sum mean:
1 + 2 + 3 + 4 = 10

Checksum mean:
sum = 1 + 2 + 3 + 4 = 10
sum / 128 = 10 / 128 = 0 quotient ... 10 remainder
Checksum = 128 - remainder = 128 - 10 = 118

Simple example formula in Hex:
F0H 41H 10H mm 12H aa aa aa aa vv cs F7H
F0H = Exclusive status
41H = Manufacturer ID (41H = Roland)
10H = Device ID (17d)
mm = model ID (00H 00H 1CH = VG-99)
aa aa aa aa = address (can be the start address)
vv = value (can be more than one depending the address)
cs = CheckSum
F7H = End Of Exclusive

Checksum calculation not include F0H (Start of SysEx) to 12H (DT1 command)
So...
sum = aa + aa + aa + aa + vv
sum / 128 = quotient ... remainder
CheckSum = 128 - remainder = cs

*** JUST ONE EXCEPTION ***
On SysEx message all values must be from 00H to 7FH (0-127).
So, in case that the remainder is 0,
checksum = 128 - 0 = 128 (80H)
In this case you must use 00H as checksum.

♪♫♪
Thanks for that great explanation. I need all the knowledge I can get on the subject. I did misspeak though, and meant to say checksum. I have confirmed that my messages are written correctly thanks to using Snoise's Midi Monitor to steal messages from Roland's desktop editor for the VG-99.  And I've figured out how to use "V" for a variable parameter value, but Midi Designer always comes up with a different checksum than the editor app.  Since mine is smaller than theirs I gather it's the third byte in the model ID not being accounted for.
I see.
Maybe the problem is on the software of MD or in the syntax of your message. I don't know.
Can you write here the message that you write (type) on the MD please ?
Just for double checking.

♪♫♪
Like I say, I'm just learning but feel pretty certain I have this one right.  I've created a button. Actually nine buttons controlled by a supercontroller switch to make the buttons exclusive. They're all set to "Send On Only", with the goal of having a quick way to set the VG's guitar model.

To set the VG's COSM guitar model (A) to Classic Strat I've entered:

41 00 00 00 1C 12 60 00 30 1B 00

And I use the Two Byte Model setting

Midi Monitor reports receiving the following

F0 41 00 00 00 1C 12 60  00 30 1B 00 43 F7

The VG does nothing :)

I issue the same command from the Roland desktop editor app and Midi Monitor reports receiving

F0 41 00 00 00 1C 12 60  00 30 1B 00 55 F7

It seems to me that the checksum is not what the VG expects and so it disregards all of my suggestions to configure itself to my wishes.

Why not just use the editor, you may ask? Because I've been using the VG's guitar models into real amps and other amp modeling software a lot lately, and having a way to change to a baritone Danelectro with 2 button presses would be SO nice.  No app to launch, no cycling between apps on the computer, keeping my hands free to play.  I don't even need the MD setup to follow the VG's state, like the desktop editor does, because it's so simple.  I've been doing this via the FC-300 foot controller using MIDI, but there aren't enough buttons to handle all the guitar models and tunings, and I like the option of trying out some of the VG's fx in the chain too, but I'm putting that off until I get this guitar/tuning setup working well.
From first view, something is strange.

You wrote:
F0 41 00 00 00 1C 12 60 00 30 1B 00 55 F7

The message must be aprox.:
F0 41 10 00 00 1C 12 60 00 30 1B 00 55 F7

Are you shure about the third byte ?

The third byte (10) is the Device ID.
The Device ID by factory default must be 10H or 01H.
Did you change it from the machine ?
Check this byte then try again please.

The correct checksum of the above message is 55H.

*** Helpful explanation ***
IF
1. the Device ID of your SysEx message does not match the Device ID of the machine

OR
2. the checksum of your SysEx message is not correct

THEN
3. the device (VG-99 in your case) ignore the SysEx message.

From the above you can understand that you can have on the same midi chain more than one (up to 32) same - identical machines (Midi Devices) and each one of them can receive completely different commands via SysEx messages.


*** Useful complicated example ***

On the same midi chain we have three VG-99.

e.g.     MD > VG-99 [A] > VG-99 [B] > VG-99 [C]
or any order
e.g.     MD > VG-99 [B] > VG-99 [A] > VG-99 [C]

VG-99 [A] have Device ID 10H
F0 41 10 00 00 1C 12 60 00 30 1B 00 55 F7

VG-99 [B] have Device ID 11H
F0 41 11 00 00 1C 12 60 00 30 1B 00 55 F7

VG-99 [C] have Device ID 12H
F0 41 12 00 00 1C 12 60 00 30 1B 00 55 F7

Every one of them respond ONLY to its corresponding command based on the Device ID.

♪♫♪
Thanks anonymous.  I'll check out the device ID tomorrow when I get back to my setup. Maybe that's the problem.  That would be great!
Hmmm.  Even if I send the command with 10 as the Device ID I still get a checksum of 43 with the 2-byte model ID setting, and 27 with the 1-byte setting.  I can't get it to be 55.

I also have a VB-99 so maybe I did change the device ID.  Even so my checksum comes up short:)
First of all check the Device ID on your VG-99, this is very important. Set the Device ID to 0 (zero).

Then, try to send the following message from your computer direct via MIDI from any DAW (Sonar e.t.c.).

F0 41 00 00 00 1C 12 60 00 30 1B 00 55 F7

If the above message work, try to type the same message on the MD.

If not work from the MD, maybe the problem is on the software of MD, mean can not handle correctly the checksum.

I don't know, 'admin' know better if this is a problem of MD software.

♪♫♪

======================================================
P.S.
To admin:
I can not add comment or ask a new question or add a suggestion
as before (as anonymous) because something changed (locked).
Why ?
======================================================
I can confirm that my VG-99's model number is 00h which seems to be the default.

So I use the Roland VG-99 desktop editor app to send a message that works:

F0 41 00 00 00 1C 12 60  00 30 1B 00 55 F7

In MD I have a button set to Send On Only and enter this message:

41 00 00 00 1C 12 60  00 30 1B V (with value set to 1 byte and range 0-0, two-byte Roland checksum) and I get this:

F0 41 00 00 00 1C 12 60  00 30 1B 00 43 F7

Obviously the problem is the 2-byte checksum. Without accounting for a 3-byte model ID this checksum will always be wrong.

I've figured out that I can type the checksum in manually and get the VG-99 to react to messages with finite values, so that's great for On-only buttons, but toggles and sliders are non-functional without the dynamic calculation of checksums, I guess, unless someone knows a way around that.

I really love the layout and ease of use of the program, and really hope that the checksum issue can be issued a fix soon because, in my particular case, I bought the app for this specific purpose:(
...