p.getDriver().calculateChecksum(p);
p.calculateChecksum();
    public Patch getPatch(Patch bank, int patchNum)    {        // this method is call when you have a single perf opened and want to send or play individual patches        // OR when you do a Cut/Copy        // The method is call to retreive a single patch        // Must convert to a single dump for edit buffer        try        {            byte [] sysex=new byte[296];            sysex[0]=(byte)0xF0;sysex[1]=(byte)0x00;sysex[2]=(byte)0x20;            sysex[3]=(byte)0x29;sysex[4]=(byte)0x01;sysex[5]=(byte)0x21;            sysex[6]=(byte)(getChannel()-1);            sysex[7]=(byte)0x00;            sysex[8]=(byte)0x09;            sysex[295]=(byte)0xF7;            System.arraycopy(((Patch)bank).sysex,getPatchStart(patchNum),sysex,9,296-9);            Patch p = new Patch(sysex, getDevice());            p.getDriver().calculateChecksum(p);               return p;        }catch (Exception e) {ErrorMsg.reportError("Error","Error in Nova1 Bank Driver",e);return null;}    }