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 > |