• Welcome to ADA Depot - A Forum To Support Users of ADA Amplification Gear.
 

News:

Let us never forget our beloved founder - RIP Jurrie, we all miss you very much

Main Menu

ADA MP-1 Digital Modification

Started by GuitarBuilder, December 30, 2013, 11:09:57 AM

Previous topic - Next topic

Griphook

#45
Indeed, I introduced myself, but hey, Here I am  ;)

I already tried to code something, but it was not very succesful. My programming skills are not quite good enough to link all components, like Midi-Port Opening, integrate some fancy graphics and so on.
But I'd love to help working on this, since I complained about the lack of a good Patch-Editor.

I tried to analyse some of my MP-1 Patches.
The HEX-Codes are really a mess. I had to count the "start" and "end" of each patch.

Here are my 2 files. One withe the Patch-Dump received from the MP1 and the other is sorted. Maybe this will help a little :)

EDIT: @MJMP. Yes, I think the checksum changes, if you change a Parameter. Otherwise the checksum would be pretty pointless.

MarshallJMP

#46
The dump you made are from multiple patches correct?
So you already did a fine job and it seems to be correct if you compare it to the notes I posted.
F0      sysex identifier
0D     ADA identification code
10     Channel nr ,is this the actual midi channel which would be in your case 11?
0B     Load library command,there seem to be a few of these commands
01     Device code, in this case 01 is the MP-1,for the MB-1 it's 02,but this seems also be the case for the MP-2 and both   
        combo's.So we need to figure out the code for the MQ-1 and the classic.
After this you get the parameters. The amount of the parameters depends on the product.
MP-1 has 11 bytes for one patch.
MB-1 v1 21 bytes
MB-1 v2 45 bytes
MP-2 140 bytes
Quadtube 139 bytes
Tritube 75 137 bytes.
Then the last 2 bytes are the checksum and F7 (End of sysex)
The high amount of bytes used in the MP-2 seems to come from the (my guess) control change stuff and midi mapping?

So there's still a lot of work to be done figuring out stuff. Maybe we could ask Dave Tarnowski from ADA if he has the whole syses documentation of all the ADA devices. And else we have to figure it out our self.

Does anybody know what "humber" or "humber coding" is ?



Griphook

Thanks ^.^
Yeah, it seems to be correct, so it shouldnt be a problem to configure all patches with an array, so an Overdrive Setting of 0.1 would be 01 in Hex, 9.0 will be 26 Hex and so on.

But i didnt manage to figure out, how to replace patches with self-written onesy from an editor.

According to the MP-1 Manual Version 1 (which helped me a lot with this) Humber Means, "Most significant bits first" (https://en.wikipedia.org/wiki/Bit_numbering)

We should make some Test with som self written SysEx-Messages, so we can pre-check, whether they ar ok or not?

MarshallJMP

#48
So the channel nr is actually the midi channel?

Did you try the load program command?

F0 0D 10 09 01 pp b0 ...bn xx F7

09 is the load program command,08 seems to be the send program command (so the mp-1 sends one program)
pp=program nr
b0...bn data bytes
xx checksum

Did you figure out how they do the checksum

Saw that too about the MSB but I never heard of the term "humber"

Yes we could use bome sendsx to transmit the sysex messages

vansinn

#49
Quote from: MarshallJMP on June 19, 2016, 08:47:23 AM
The high amount of bytes used in the MP-2 seems to come from the (my guess) control change stuff and midi mapping?

Of course. That, plus the MP-2 has a good deal more features, each requiring parameters - incl. the CC stuff, thus it all adds up..

Quote from: MarshallJMP on June 19, 2016, 11:11:03 AM
Did you figure out how they do the checksum

I could imagine it might be a simple CRC + byte count checksum, like so often used in most IT stuff - like with the Linux 'cksum' program.

MarshallJMP

I saw something in the old MP-1 V1 manual about 2s complement checksum.

rnolan

Also the MP2 stores the program name, I assume it's ASCII char set so one byte per character and probably has to be padded with NUL for the blanks which seems to be 00000000 = 0. so 256 characters (0 to 255, or 00 to FFhex, or 00000000 to 111111 base2).

Hers some sysex programming links:
http://www.2writers.com/eddie/tutsysex.htm
http://www.2writers.com/eddie/tutsysex.htm
http://www.kidnepro.com/blog/sysex-made-simple/
https://www.midi.org/specifications/item/table-4-universal-system-exclusive-messages
https://en.wikipedia.org/wiki/ASCII#Code_chart
https://cycling74.com/2012/02/14/working-with-hardware-livid%E2%80%99s-code-part-three/#.V2fp_KJPw0g
Studio Rig: Stuff; Live Rig: More Stuff; Guitars: A few

Griphook

I just managed to read from my .syx-File to an array, but I dont get any clue, how the checksum is calculated.
The checksum "Does" or "Does Not" contain "Sysex, EOX and the checksum itself" ? I assume it doesn`t.

And what to do with the "Byte 1"-thingy written in the MP-1 Manual Version 1?

MarshallJMP

Yes it's strange it seems they only do a checksum on the actual data so they ditch the MSB and only use the 7 bits that are left except if it's only one byte then they ditch the 2 MSB just to leave 6 bits??
Am I seeing this correct? It's very confusing.

Griphook

I don't know.
It seems to be, that the Bits of Byte 1 Are set. Independent from the Data?
So imo, nö further Information about calculating the checksum  :dunno:  :crazy:

MarshallJMP

Tomorrow I'll do a backup of one preset and I'll see if I can figure out the checksum.

I wonder why they would ditch bits, it only makes it more complicated and in the end I really can't see what use it has.

Griphook

#56
I could imagine, that you just dont need the first bit. The maximum value, you can reach is 40(Dec)--> 28(Hex), which is "0010 1000". So the first bit is not even touched. So why transfer it, when its not needed?

I will also get my MP-1 back at my place and try to figure this out ^^


EDIT: The MSB signs, whether the binary number is positive or not (0=positive, 1=negative). Maybe Set the MSB to 0 and all Numbers are positive?

Boogie

Hey,
I think I figured out how to do the MP-2 program checksum. You're on the right track. Just send me a load program dump with manipulated bits or bytes to verify. If you don't screw up specific parameters it will load with the calculated checksum. There's other stuff I'm stuck with. The send program command works different and also the Firmware checksum.

Griphook

I don't own a MP-2, but can you explain, how the checksum is calculated ?

maybe we can make up a general way out of your solution.  :)

rnolan

I tripped over something that explained Humber, but I didn't read it and now I can't seem to locate it again.

So if the MSB is the sign (which makes sense (and maybe that's what humber is about)) then wouldn't it get set for the -ve eq values or do they just represented by by a number range eg 0 through 20 and 10 = 0 (flat) >10 = -ve values and > 10 = +ve ??
Studio Rig: Stuff; Live Rig: More Stuff; Guitars: A few