Yahoo Groups archive

Emu XL-7 & MP-7 User's Group

Index last updated: 2026-04-02 22:17 UTC

Thread

Can anyone help with a Tuning Issue

Can anyone help with a Tuning Issue

2008-08-14 by Keith Young

I am trying to use single note change and bulk upload and I cannot get 
them to work. I thought the upload might be my checksum calculation, so 
I tried getting a download to see if I could replicate the number 
generated by the Proteus module, but I can't. Worse, the MIDI spec and 
the Proteus manual includes different parts of the message in the 
checksum calculation. I can't get the single note ones to work either 
and these don't have a checksum in them so it may be wrong about what I 
am expecting to happen.

If anyone has any code (or even a binary SSNC or Bulk dump) that works 
I would be grateful.
Thanks,
Keith

Re: Can anyone help with a Tuning Issue

2008-08-15 by steve_the_composer

Hi, Keith.

I have not done this on the Proteus line, but in other software I 
did (decades ago), I just added the values in the relevant locations 
based on 7 bits (ie., from 0x00 to 0x7F; next number is 0x00; that 
is 0x7F + 0x01 = 0x00). I then subtracted the value from 0x80 and 
the result was my checksum. I just assumed all midi checksums worked 
the same way. Is that the same as doing XOR?  Hmmmm. I guess it 
would be, wouldn't it? The question remaining is this: Is it based 
on 7 bits? (I would assume so.)

If I am right and I wanted to test it, I'd add all of the numbers 
from the 7E through the 388 bytes and figure out what I have to add 
to make it 0.

What happens if you do a bulk tuning dump from the front panel, add 
a few numbers to the frequency values, subtract an equal number from 
the checksum, and send it back to the E-Mu? (I may try this later.)

--Steve

--- In xl7@yahoogroups.com, "Keith Young" <emigr8@...> wrote:
>
> I am trying to use single note change and bulk upload and I cannot 
get 
> them to work. I thought the upload might be my checksum 
calculation, so 
> I tried getting a download to see if I could replicate the number 
> generated by the Proteus module, but I can't. Worse, the MIDI spec 
and 
> the Proteus manual includes different parts of the message in the 
> checksum calculation. I can't get the single note ones to work 
either 
> and these don't have a checksum in them so it may be wrong about 
what I 
> am expecting to happen.
> 
> If anyone has any code (or even a binary SSNC or Bulk dump) that 
works 
Show quoted textHide quoted text
> I would be grateful.
> Thanks,
> Keith
>

Re: Can anyone help with a Tuning Issue

2008-08-15 by steve_the_composer

Just did a quick test as follows [on XL-2500]:

(1) On C-2 of USer Table 1 I changed coarse to 127 and fine to 63.
(2) I requested table 1: f0 7e 00 08 00 00 f7

Here's the first part of the dump:

F0 7E 00 08 01 00 [header]
55 73 65 72 20 54 75 6E 69 6E 67 20 30 30 30 20 [name]
7F 7E 00 [C-2]
01 00 00 [C#-2]

(3) I then changed C-2 back to its original
00 00 00

(4) Since I added 03, I subtracted 03 from the check sum.
37 became 34

(5) I then sent the dump back and since I had the table up
 on display, I saw the 127 and 63 change back to 000 and 00.

I imagine the other P2Ks should work the same way.

BTW, I seem to recall on the P2K message board a few of us discussed 
tuning systems. This was a year or two ago.

I will check out the single note change.

--Steve

PS: My checksum calculation (Roland gear) was either for the 
Commodore 64 or the Intel 8086/8088 and may have been in assembly 
lang. I would have used an 8 bit variable, shifted left, then right 
to drop the 8th bit and finally subtracted from 80h. If I ever find 
the code, I will check to see if I used the XOR.

Re: Can anyone help with a Tuning Issue

2008-08-16 by Keith Young

Its very strange. I am also seeing the values change depending on 
manual adjustments in the front panel. But when I come to actually 
trying to calculate from scratch, I never get the same value as they 
do. I have tried every combination of the first 6 bytes (the header), 
both with and without including the name, either XORing or ADDing and 
trying additional subtraction from 0x80 or XORing the result with 
0x7f. So I went back to my standard routine and tested it on a non-
Emu module and it worked fine. In then end I found that if I set the 
checksum to 0x7f it works. It shouldn't, but it does. I think it's a 
bug.

As for the Single Note Change, it is doing nothing for me. I would 
expect to be able to send it and get an immediate effect when I play 
the note (I don't). If I send a whole table, it works fine.
Keith

--- In xl7@yahoogroups.com, "steve_the_composer" <smw-mail@...> wrote:
>
> Just did a quick test as follows [on XL-2500]:
> 
> (1) On C-2 of USer Table 1 I changed coarse to 127 and fine to 63.
> (2) I requested table 1: f0 7e 00 08 00 00 f7
> 
> Here's the first part of the dump:
> 
> F0 7E 00 08 01 00 [header]
> 55 73 65 72 20 54 75 6E 69 6E 67 20 30 30 30 20 [name]
> 7F 7E 00 [C-2]
> 01 00 00 [C#-2]
> 
> (3) I then changed C-2 back to its original
> 00 00 00
> 
> (4) Since I added 03, I subtracted 03 from the check sum.
> 37 became 34
> 
> (5) I then sent the dump back and since I had the table up
>  on display, I saw the 127 and 63 change back to 000 and 00.
> 
> I imagine the other P2Ks should work the same way.
> 
> BTW, I seem to recall on the P2K message board a few of us 
discussed 
Show quoted textHide quoted text
> tuning systems. This was a year or two ago.
> 
> I will check out the single note change.
> 
> --Steve
> 
> PS: My checksum calculation (Roland gear) was either for the 
> Commodore 64 or the Intel 8086/8088 and may have been in assembly 
> lang. I would have used an 8 bit variable, shifted left, then right 
> to drop the 8th bit and finally subtracted from 80h. If I ever find 
> the code, I will check to see if I used the XOR.
>

Re: Can anyone help with a Tuning Issue

2008-08-16 by Keith Young

I have just figured out the Single Note Tuning Change problem. The 
manual is in error. It documents the message as a Midi Universal Non-
Realtime message (0x7e) when it should be Universal Realtime message
(0x7f). I have documented both these bugs in the SysExFaults file in 
the P2K group file section.

Thanks for the help, I thought I was cracking up for a while there.
Keith

--- In xl7@yahoogroups.com, "Keith Young" <emigr8@...> wrote:
>
> Its very strange. I am also seeing the values change depending on 
> manual adjustments in the front panel. But when I come to actually 
> trying to calculate from scratch, I never get the same value as 
they 
> do. I have tried every combination of the first 6 bytes (the 
header), 
> both with and without including the name, either XORing or ADDing 
and 
> trying additional subtraction from 0x80 or XORing the result with 
> 0x7f. So I went back to my standard routine and tested it on a non-
> Emu module and it worked fine. In then end I found that if I set 
the 
> checksum to 0x7f it works. It shouldn't, but it does. I think it's 
a 
> bug.
> 
> As for the Single Note Change, it is doing nothing for me. I would 
> expect to be able to send it and get an immediate effect when I 
play 
> the note (I don't). If I send a whole table, it works fine.
> Keith
> 
> --- In xl7@yahoogroups.com, "steve_the_composer" <smw-mail@> wrote:
> >
> > Just did a quick test as follows [on XL-2500]:
> > 
> > (1) On C-2 of USer Table 1 I changed coarse to 127 and fine to 63.
> > (2) I requested table 1: f0 7e 00 08 00 00 f7
> > 
> > Here's the first part of the dump:
> > 
> > F0 7E 00 08 01 00 [header]
> > 55 73 65 72 20 54 75 6E 69 6E 67 20 30 30 30 20 [name]
> > 7F 7E 00 [C-2]
> > 01 00 00 [C#-2]
> > 
> > (3) I then changed C-2 back to its original
> > 00 00 00
> > 
> > (4) Since I added 03, I subtracted 03 from the check sum.
> > 37 became 34
> > 
> > (5) I then sent the dump back and since I had the table up
> >  on display, I saw the 127 and 63 change back to 000 and 00.
> > 
> > I imagine the other P2Ks should work the same way.
> > 
> > BTW, I seem to recall on the P2K message board a few of us 
> discussed 
> > tuning systems. This was a year or two ago.
> > 
> > I will check out the single note change.
> > 
> > --Steve
> > 
> > PS: My checksum calculation (Roland gear) was either for the 
> > Commodore 64 or the Intel 8086/8088 and may have been in assembly 
> > lang. I would have used an 8 bit variable, shifted left, then 
right 
> > to drop the 8th bit and finally subtracted from 80h. If I ever 
find 
Show quoted textHide quoted text
> > the code, I will check to see if I used the XOR.
> >
>

Re: Can anyone help with a Tuning Issue

2008-08-16 by steve_the_composer

See below.
--- In xl7@yahoogroups.com, "Keith Young" <emigr8@...> wrote:
> In then end I found that if I set the checksum to 0x7f
> it works. It shouldn't, but it does. I think it's a bug.

Its by design, not a bug. In fact, its in the sysex manual somewhere 
(0x7f = ignore checksum). Perhaps there were different people 
working on the sysex or it was inherited or something screwy was 
going on, so someone said, "Hey, let's make 0x7f a special case to 
ignore checksum!"

Sorry I didn't point that out in my previosu post.

> As for the Single Note Change, it is doing nothing for me. I would 
> expect to be able to send it and get an immediate effect when I
> play the note (I don't). If I send a whole table, it works fine.

I played around with it for about 10 min after doing the bulk dump 
and didn't get anywhere. I am thinking perhaps the bulk tuning dump 
works on tuning tables shared by the front panel and sysex, while 
the single note works purely by sysex independent of front panel 
changes. (There's the standard note somewhere in there to the effect 
that if you change it by remotely, subsequent changes need to be 
done remotely, too.)

Some footnotes that I discovered, but didn't chase too far:
(1) Tuning Table Requests (Bulk Dumps) start from 0 and actually go 
to something like 59, but after 12, you just get the last tuning 
table data, though if I remember correctly, the header makes it look 
like there are additional table.

(2) As you noticed front panel fine = 63 corresponds with 0x7f. 62 
coresponds with 0x7d, etc. You may have also noticed there is a 
third byte after coarse and fine. I tried sending intermediate fine 
values and third byte values. They did not get sent back with 
subsequent requests.

(3) There is a keyboard tuning parameter (in the middle of the 
controller parameter, I think). You may have noticed that the user 
tuning tables come at the end.

So, I was thinking that the "on-the-fly" single note tunings go 
somewhere (an undocumented table?) after the OS pulls (1) the 
keyboard tuning value and (2) if its a user table, the user table 
settings. This would make sense, esp. if the "on-the-fly" changes 
affect the built-in tunings.

That's as far as I got. I didn't test this out, though. I suppose to 
test it, I would use on of the built in turnings, audition some 
basic riff, send a sysex with whacky single note tunings, and just 
listen. 

Perhaps there are three values in the user tuning tables because all 
three ultimately get copied into an undocumentable table from which 
we don't know if we can read/request the values.

Hmmmmmm. I love logic puzzles like this. Maybe I will try to free up 
some time to test it.

--Steve




> 
> --- In xl7@yahoogroups.com, "steve_the_composer" <smw-mail@> wrote:
> >
> > Just did a quick test as follows [on XL-2500]:
> > 
> > (1) On C-2 of USer Table 1 I changed coarse to 127 and fine to 
63.
> > (2) I requested table 1: f0 7e 00 08 00 00 f7
> > 
> > Here's the first part of the dump:
> > 
> > F0 7E 00 08 01 00 [header]
> > 55 73 65 72 20 54 75 6E 69 6E 67 20 30 30 30 20 [name]
> > 7F 7E 00 [C-2]
> > 01 00 00 [C#-2]
> > 
> > (3) I then changed C-2 back to its original
> > 00 00 00
> > 
> > (4) Since I added 03, I subtracted 03 from the check sum.
> > 37 became 34
> > 
> > (5) I then sent the dump back and since I had the table up
> >  on display, I saw the 127 and 63 change back to 000 and 00.
> > 
> > I imagine the other P2Ks should work the same way.
> > 
> > BTW, I seem to recall on the P2K message board a few of us 
> discussed 
> > tuning systems. This was a year or two ago.
> > 
> > I will check out the single note change.
> > 
> > --Steve
> > 
> > PS: My checksum calculation (Roland gear) was either for the 
> > Commodore 64 or the Intel 8086/8088 and may have been in 
assembly 
> > lang. I would have used an 8 bit variable, shifted left, then 
right 
> > to drop the 8th bit and finally subtracted from 80h. If I ever 
find 
Show quoted textHide quoted text
> > the code, I will check to see if I used the XOR.
> >
>

Re: Can anyone help with a Tuning Issue

2008-08-16 by steve_the_composer

Thanks for figuring this out, Keith. I changed my copy of the manual. 
Interesting: it says "Exclusive Real-Time sub-ID#1 = 08h" in the 
description, but "Non-real time" in the format/example. The same 
discrepancy is in the section on Master Volume. (I'm guess that should 
also be real-time.)

BTW, the error goes back at least as far as sysex manual 2.0. Kudos to 
you for finally correcting this!!!

--Steve 



--- In xl7@yahoogroups.com, "Keith Young" <emigr8@...> wrote:
Show quoted textHide quoted text
>
> I have just figured out the Single Note Tuning Change problem. The 
> manual is in error. It documents the message as a Midi Universal Non-
> Realtime message (0x7e) when it should be Universal Realtime message
> (0x7f). I have documented both these bugs in the SysExFaults file in 
> the P2K group file section.
> 
> Thanks for the help, I thought I was cracking up for a while there.
> Keith