|
From: Robert W. <wi...@op...> - 2007-12-24 09:15:35
|
Hello Daniel,
further action depends perhaps on your sysex device implementation.
If there is a sysex which changes several parameters, then use it.
Otherwise, there is no other possibility then sending several sysex
messages at a time. It requires to write your own sendPatch(Patch)
method. I did the same in my Roland JD800 driver (JSynthLib/
synthdrivers/RolandJD800/RolandJD800SinglePatchDriver.java).,
Robert.
On Dec 22, 2007, at 2:42 AM, Daniel Rosenstark wrote:
> Hello all.
>
> First off, thanks to those who responded to me privately, who
> probably meant
> to reply to the list. The answer to my last questions were "set the
> checksumOffset, start, and end values." That worked.
>
> So now I've advanced quite a bit in my HelloWorld, and now I have the
> following code
>
> super.trimSize = 16;
> super.checksumOffset = 14;
> super.checksumStart = 6;
> super.checksumEnd = 13;
> byte[] first = new byte[] {
> (byte)0xF0, // It's a MIDI
> System
> exclusive message!
> 0x41, // Roland ID
> 0x10, // Device ID 17
> (minus
> one)
> 0x00,0x2E, // Model ID 2E for
> HPD-15
> 0x12, // Command ID
> (this is
> data set, could be a request 0x11)
> 0x01,0x00,0x10,0x00, // the offset
> for the
> user kit, pad A1
> 0x00, 0x00, 0x07,12, // the nibbled
> data for
> the shekere 124
> (byte)0xFF, // checksum
> will go here
> (byte)0xF7 // end
> };
>
> which works perfectly for ONE parameter change (I'm amazed. I had
> never
> nibbled before :). But now I want to send an entire kit (pads A1,
> A2, etc.).
> I've tried the two obvious things, making two sysexs back to back
> (they get
> trimmed to one, otherwise the checksum would be calculated just
> once). I've
> also tried putting in more than one offset and data (message was
> received
> but didn't do the right thing).
>
> I can send more than one sysex message, but I imagine there's a
> better way.
>
> Thanks in advance for your help!
>
> Best,
> Daniel
>
|