newPatchArray[1] = new Patch(bankSysex, getDevice());
tempPatch = new Patch(bankSysex, getDevice()); tempPatch.setComment("Bank B from an all sound dump."); newPatchArray[1] = tempPatch;
    public Patch[] extractPatch(Patch basePatch) {    	byte[] baseSysex = basePatch.getByteArray();        Patch[] newPatchArray = new Patch[2];        byte[] temporarySysex = new byte[MW2Constants.PATCH_SIZE];        Patch tempPatch;        byte[] bankSysex = new byte[MW2Constants.PATCH_SIZE * MW2Constants.PATCH_NUMBERS];        // Convert the sounds of bank A                for(int patchNo = 0; patchNo < MW2Constants.PATCH_NUMBERS; patchNo++) {            System.arraycopy(   baseSysex,                    getPatchStart(patchNo),                    temporarySysex,                    MW2Constants.SYSEX_HEADER_OFFSET,                    MW2Constants.PURE_PATCH_SIZE );            tempPatch = new Patch(temporarySysex, getDevice());                        WaldorfMW2SingleDriver.createPatchHeader(tempPatch, 0, patchNo);            WaldorfMW2SingleDriver.createPatchFooter(tempPatch);                        WaldorfMW2SingleDriver.calculateChecksum( tempPatch,                MW2Constants.SYSEX_HEADER_OFFSET,                 MW2Constants.SYSEX_HEADER_OFFSET + MW2Constants.PURE_PATCH_SIZE,                 MW2Constants.SYSEX_HEADER_OFFSET + MW2Constants.PURE_PATCH_SIZE - 1);                        System.arraycopy(   tempPatch.sysex,                    0,                    bankSysex,                    patchNo * MW2Constants.PATCH_SIZE,                    MW2Constants.PATCH_SIZE );                    }                                               newPatchArray[0] = new Patch(bankSysex, getDevice());                // Convert the sounds of bank B                // 32.678 Bytes (Without the header!!!)        int halfSize = MW2Constants.PURE_PATCH_SIZE * MW2Constants.PATCH_NUMBERS;        int index = 0;        bankSysex = new byte[MW2Constants.PATCH_SIZE * MW2Constants.PATCH_NUMBERS];                for(int patchNo = 0; patchNo < MW2Constants.PATCH_NUMBERS; patchNo++) {            index = halfSize + getPatchStart(patchNo);//System.out.println("patchNo: " + patchNo);//System.out.println("index: " + index);//System.out.println("getPatchStart: " + getPatchStart(patchNo));//System.out.println("halfSize: " + halfSize);            System.arraycopy(   baseSysex,                    index,                    temporarySysex,                    MW2Constants.SYSEX_HEADER_OFFSET,                    MW2Constants.PURE_PATCH_SIZE );            tempPatch = new Patch(temporarySysex, getDevice());                        WaldorfMW2SingleDriver.createPatchHeader(tempPatch, 1, patchNo);            WaldorfMW2SingleDriver.createPatchFooter(tempPatch);                        WaldorfMW2SingleDriver.calculateChecksum( tempPatch,                MW2Constants.SYSEX_HEADER_OFFSET,                 MW2Constants.SYSEX_HEADER_OFFSET + MW2Constants.PURE_PATCH_SIZE,                 MW2Constants.SYSEX_HEADER_OFFSET + MW2Constants.PURE_PATCH_SIZE - 1);                        System.arraycopy(   tempPatch.sysex,                    0,                    bankSysex,                    patchNo * MW2Constants.PATCH_SIZE,                    MW2Constants.PATCH_SIZE );                    }                newPatchArray[1] = new Patch(bankSysex, getDevice());        return newPatchArray;    }