YamahaMotifSysexUtility.splitAndSendBulk( p.sysex, getPort(),
YamahaMotifSysexUtility.splitAndSendBulk( p.sysex, this,
  protected void sendPatchWorker(Patch p, int patchnum) {    // Fix the header/footer    for (int offset = 0;	 offset <= p.sysex.length - YamahaMotifSysexUtility.SYSEX_OVERHEAD; 	 offset += p.sysex.length - YamahaMotifSysexUtility.SYSEX_OVERHEAD) {      p.sysex[offset + YamahaMotifSysexUtility.ADDRESS_OFFSET + 1] =	(patchnum == -1) ? Byte.parseByte(edit_buffer_base_address, 16) :	Byte.parseByte(base_address, 16);      // If sending to edit buffer (patchnum is -1) patch needs      // to be set to 0.      p.sysex[offset + YamahaMotifSysexUtility.ADDRESS_OFFSET + 2] =	(byte) ((patchnum == -1) ? 0 : ( patchnum & 128 ));      YamahaMotifSysexUtility.checksum(p.sysex, offset);    }    // Send each message separately so it doesn't get screwed up by the     // midi wrapper.    YamahaMotifSysexUtility.splitAndSendBulk( p.sysex, getPort(),					      getChannel() - 1 );    // Put header back so that it will be recognized.    p.sysex[YamahaMotifSysexUtility.ADDRESS_OFFSET + 1] =       Byte.parseByte(base_address, 16);  }