Driver drv = father.getDriver();
Driver drv = (Driver)father.getDriver();
    public void generateNewPatch() {	try {	    Patch father = getRandomPatch();	    Driver drv = father.getDriver();	    byte[] sysex = new byte[father.sysex.length];	    p = new Patch(sysex, drv);	    ErrorMsg.reportStatus("num : " + father.sysex.length + ", " + sysex.length);	    for (int i = 0; i < father.sysex.length; i++) {		Patch source;		// look for a patch with same Driver and enough length		do {		    source = getRandomPatch();		} while (source.getDriver() != drv			 || source.sysex.length <= i);		p.sysex[i] = source.sysex[i];	    }	    ErrorMsg.reportStatus("patch : " + father + ", " + p);	    p.getDriver().calculateChecksum(p);	} catch (Exception e) {	    ErrorMsg.reportError("Error", "Internal Error", e);	}    }