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!