[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference napalm::commusic_v1

Title:* * Computer Music, MIDI, and Related Topics * *
Notice:Conference has been write-locked. Use new version.
Moderator:DYPSS1::SCHAFER
Created:Thu Feb 20 1986
Last Modified:Mon Aug 29 1994
Last Successful Update:Fri Jun 06 1997
Number of topics:2852
Total number of notes:33157

2380.0. "TXNEW.ARC/DX11/TX81Z checksum error help" by CSOA1::BREZLER () Fri Jun 29 1990 03:01

    I scaned the notes but found not what I needed so........
    
    I have brought the TXNEW.ARC file to my local VAX and downloaded it to
    my PC using Kermit (yes, I set file type binary). I got no errors in
    either the move from DYO780 and/or MIDI in the process; nor did I get
    any error in the download from my local VAX to PC. However, when I used
    PKUNPAK to unpak the 27 banks of patches and tried to load them onto my
    DX11 (should handle all the TX81Z banks) I got 12 to load into my DX11
    just fine but 15 gave me a checksum error on my keyboard LCD readout.
    
    So............two questions..........
    
    Does anyone know the whereabouts of a "good" TXNEW.ARC file?????
    
    Does anyone know of a routine to calculate the correct checksum for a patch
    dump for the YAMAHA TX81Z/DX11?????????
    
    Any help would be greatly appreciated. The time I have spent trying to
    eliminate operator error is discouraging, but that's part of the hobby,
    I guess.
    
    Thanks in advance
    
    A novice who is quickly learning
    
    Gil
    
T.RTitleUserPersonal
Name
DateLines
2380.1I'm getting lotsa mileage outta this ...WEFXEM::COTEYou make the knife feel good...Fri Jun 29 1990 10:3011
    The C code for figuring out a Yamaha check-sum is posted in note 146.
    
    I've verified it's accuracy for single patches for both the TX81Z and
    the DX21. The documentation states the same algorythm is used for all
    the various dumps for the TX81Z and, most likely, all of Yamaha's gear.
    
    The checksum is the two's compliment of the 7 LSDs of the sum of all
    the DATA bytes (DATA ONLY!) in the dump. Don't include the header
    information....
    
    Edd
2380.2DCSVAX::COTEYou make the knife feel good...Fri Jun 29 1990 13:508
    By the way, I wouldn't sweat a checksum error too much. A complete
    bank dump consists of 4096 bytes, any of which, if off by any amount,
    will generate a checksum error. (Actually, the error could actually be
    a bad checksum, which means the data was correct!)
    
    Nothing evil will happen if you ignore the error.
    
    Edd
2380.3DX11 rejects bad checksum patchCSOA1::BREZLERFri Jun 29 1990 14:587
    I think you are correct about the lack of evil doings for a bad
    checksum on a patch. However my DX11 will not accept the patch with the
    bad check sum. It totally rejects the patch. Any idea of how to overide
    this checksum detection in the DX11?
    
    Gil
    
2380.4KOBAL::DICKSONMon Jul 02 1990 13:383
    re .1, when you say DATA ONLY, does that mean that the ASCII header
    string in the ACED data is included or not included?  (The part that
    goes something like "LM__1234XX".)
2380.5Where'd you get that from???WEFXEM::COTEYou make the knife feel good...Mon Jul 02 1990 13:525
    While I can't be sure, (because I've never seen anything resembling
    "LM__1234XX" in any dump I've ever dissected) I'll go out on a limb
    and say "don't include it".
    
    Edd
2380.6ExampleWEFXEM::COTEYou make the knife feel good...Mon Jul 02 1990 13:5820
    I forget what patch this is for, but it works. The first data byte (31)
    should be the AR for Op 4... (I think. Listen folks, if I ever get to 
    the point where I can read sys-ex dumps will someone slap me???)
    
#include <stdio.h>;
int       i,limit={92},mask=127;
unsigned int 	  adder={0};
unsigned int       sysex[]={31,18,15,14,09,00,
			01,00,00,07,48,45,06,31,15,05,07,15,00,00,00,
			00,04,87,00,00,31,18,06,06,13,42,00,00,00,03,
			99,04,00,31,18,06,06,15,22,00,00,00,07,99,04,
			06,04,06,24,00,02,00,00,02,06,00,24,00,03,00,
			00,99,01,00,01,50,00,50,00,50,00,79,78,76,89,
			32,76,79,78,76,89,99,99,99,50,50,50};
main()                                                              
{
	  for (i=0;i<=limit;i++)
		adder+=sysex[i];
	  printf("checksum: %x\n\n",((~adder)+1)&mask);
}
2380.7KOBAL::DICKSONMon Jul 02 1990 17:584
    I got it from the SYSEX pages of my TX81Z manual.  Look at the format
    given for sending an ACED bulk load.  (Ignore the typo that calls it
    the SCED format.  There is no such thing as an SCED format, and the "A"
    and "S" keys are adjacent on the keyboard...)
2380.8Include...WEFXEM::COTEYou make the knife feel good...Tue Jul 03 1990 10:346
    Hmmmm... new to me! But, righ there on page 68 is says that the ASCII
    header are considered to be part of the data.
    
    What *is* ACED format? How and why does it differ from VCED?
    
    Edd
2380.9DCSVAX::COTEYou make the knife feel good...Tue Jul 03 1990 12:146
    ....answered it myself, I think. The ACED are the parameters not shared
    with the earlier 4-op machines like the DX21, 100, 27... It looks like 
    this would include the alternate waveforms, coarse and fine tune,
    etc...
    
    Edd