ins_adjb@jhunix.HCF.JHU.EDU (Daniel Jay Barrett) (08/20/89)
I have created a working system exclusive Protocol for
Music-X's generic patch librarian, for the Oberheim Matrix-12
synthesizer. If anybody wants it, send me mail. (To make it work
for the Xpander requires changing 1 little byte.)
I tried designing one for the Yamaha SPX-90II, but I cannot capture
and display the patch names properly. Can anyone help? The rest of this
posting describes the problems I ran up against while designing these
protocols.
In the case of the Matrix-12, the patch name (8 chars) is stored
every other byte, alternating with zeroes. So, I figured I'd just print
out all 16 characters for the name. Nope... the first zero was taken as
a string terminator, and I got only the first letter to display. So, I
defined a "character map" where the first character, ASCII 0, was the
space character. Something like: \20\20,\01\40,AZ,... I can't remember
offhand. Works like a charm.
For the Yamaha SPX90II, the patch name is encoded in "nybblized
form" as described in the Music-X manual (page 384). However, Yamaha chose
to have the first byte contain the LEFTMOST 4 bits, and the second byte
contain the RIGHTMOST 4 bits, exactly the opposite of what Music-X
expects.
So, I tried to reverse every pair of bytes by receiving the patch
name nybbles with the expression:
((Y>>4)+(Y<<4))
instead of just "Y", but this did nothing. A few experiments showed that
expressions cannot modify the incoming data; they can only use it as
input. (I hope someone can prove me wrong!)
In the end, I FAILED. If anyone actually manages to capture that
patch name, please let me know!
Dan
//////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
| Dan Barrett, Systems Administrator barrett@cs.jhu.edu (128.220.13.4) |
| Dept. of Computer Science, Johns Hopkins University, Baltimore, MD 21218 |
| E-mail addresses: ARPANET: barrett@cs.jhu.edu |
| BITNET: ins_adjb@jhuvms.bitnet |
| UUCP: ins_adjb@jhunix.UUCP noog |
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////
Followup-To: comp.sys.amiga
Subject: Music-X Sysex Protocol available
Newsgroups: comp.sys.amiga,rec.music.synth
I have created a working system exclusive Protocol for
Music-X's generic patch librarian, for the Oberheim Matrix-12
synthesizer. If anybody wants it, send me mail. (To make it work
for the Xpander requires changing 1 little byte.)
I tried designing one for the Yamaha SPX-90II, but I cannot capture
and display the patch names properly. Can anyone help? The rest of this
posting describes the problems I ran up against while designing these
protocols.
In the case of the Matrix-12, the patch name (8 chars) is stored
every other byte, alternating with zeroes. So, I figured I'd just print
out all 16 characters for the name. Nope... the first zero was taken as
a string terminator, and I got only the first letter to display. So, I
defined a "character map" where the first character, ASCII 0, was the
space character. Something like: \20\20,\01\40,AZ,... I can't remember
offhand. Works like a charm.
For the Yamaha SPX90II, the patch name is encoded in "nybblized
form" as described in the Music-X manual (page 384). However, Yamaha chose
to have the first byte contain the LEFTMOST 4 bits, and the second byte
contain the RIGHTMOST 4 bits, exactly the opposite of what Music-X
expects.
So, I tried to reverse every pair of bytes by receiving the patch
name nybbles with the expression:
((Y>>4)+(Y<<4))
instead of just "Y", but this did nothing. A few experiments showed that
expressions cannot modify the incoming data; they can only use it as
input. (I hope someone can prove me wrong!)
In the end, I FAILED. If anyone actually manages to capture that
patch name, please let me know!