[linux-audio-dev] midi programming (bulk data on Yamaha TX81z)

Will Benton willb at cs.wisc.edu
Wed Sep 18 03:49:51 UTC 2002

Howdy, all.  I've sent a similar message to comp.music.midi and
rec.music.makers.synth, but I don't think I'll get many replies.  I hope
this isn't OT for the list (and that someone here knows the answer!)

In any case, I'm trying to write an application that "does stuff" (not
necessarily an editor/librarian, but with a small feature overlap) with
the user bank and performance data on my TX81z here, and I'm confused
about the VMEM bulk data format.

  1.  Page 74 of the manual states that address 6 (and 16, 26, and 36)
      is occupied by AME (b6), EBS (b4-2), and KVS (b1-b0) data.
      However, it also states that KVS data ranges from 0-7, which is
      clearly impossible in 2 bits.  Where's the mistake?  Should EBS
      be bits 5-3 and then KVS as bits 2-0?

  2.  How would one compute VMEM checksums?  Heck, as long as I'm at
      it, what's the method for computing all of the checksums
      (i.e. VMEM, PCED, PMEM, SYS, microtune, etc.)?

I have looked at the sourcecode for JSynthLib (which, for some reason,
doesn't run properly in my environment -- too bad, because it seems to
be a good program), but the answers to these questions were not really
clear to me from an examination of its TX81z driver.  (In its defense,
very little bit-twiddling Java code is particularly clear.)  In
particular, either their checksum implementation is wrong or the TX81z
manual is wrong (my money's on the latter).

In any case, I'd be glad to hear from anyone with experience doing this
kind of junk to the TX81z.  It seems that most of the TX81z sysex info
available on the net is for real-time control.


Will Benton      | "Die richtige Methode der Philosophie wäre eigentlich
willb at acm.org    |  die: Nichts zu sagen, als was sich sagen läßt...."

More information about the Linux-audio-dev mailing list