else { looplength=1; patarray=new Patch[1]; patarray[0]=this;
return patarray;
    public Patch[] dissect ()    {        Device dev;        Driver drv;        int looplength;        Patch[] patarray=null;        StringBuffer patchString=this.getPatchHeader();                for (int k=0;k<PatchEdit.appConfig.deviceCount ();k++)        { // Do it for all converters. They should be at the beginning of the driver list!            dev=(Device)PatchEdit.appConfig.getDevice (k);            for (int j=0;j<dev.driverList.size ();j++)            {                if (!(dev.driverList.get (j) instanceof Converter))                    continue;                if (!((Driver)(dev.driverList.get (j))).supportsPatch (patchString,this))                { // Try, until one converter was successfull                    continue;                }                patarray=((Converter)(dev.driverList.get (j))).extractPatch (this);                if (patarray!=null)                {                    break;                }            }            //    k++;        }        if (patarray!=null)        { // Conversion was sucessfull, we have at least one converted patch            looplength=patarray.length;        // assign the original deviceNum and individual driverNum to each patch of patarray 	for (int i=0; i<looplength; i++) 	{ 	  patarray[i].deviceNum=this.deviceNum;           dev=(Device)PatchEdit.appConfig.getDevice(patarray[i].deviceNum); 	  patchString = patarray[i].getPatchHeader();  	  for (int j=0; j<dev.driverList.size();j++) 	  { 	    if ( ((Driver)dev.driverList.get(j)).supportsPatch(patchString,patarray[i]) ) patarray[i].driverNum=j; 	  } 	}        }        else        { // No conversion. Try just the original patch....            looplength=1;            patarray=new Patch[1];            patarray[0]=this;        }         return patarray;    }