From: <tt_...@gm...> - 2004-08-03 12:47:57
|
Hi Joachim, Joachim Backhaus wrote: >>Only the AlesisA6 and SCIProphet600 drivers seem >>to make some important things, which are not done by sendPatch(). >>I like to change these drivers, but without the hardware it's >>hard to test if I break something. So I let it be. > > > Hmm, these are both written by "Kenneth L. Martinez". > > Does anyone on this list own an Alesis Andromeda > or Sequential Circuits Prophet 600? > > I think removing the playPatch method there wouldn't > change anything: > > // Kludge: A6 doesn't seem to receive edit buffer dump, so user mix 127 > // is being used for that purpose. > public void playPatch(IPatch p) > { > byte sysex[] = new byte[1182]; > System.arraycopy(((Patch)p).sysex, 0, sysex, 0, 1180); > sysex[6] = 0; // user bank > sysex[7] = 127; // mix # 127 > sysex[1180] = (byte)(0xC0 + getChannel() - 1); // program change > sysex[1181] = (byte)127; // mix # 127 > IPatch p2 = new Patch(sysex); > try > { > super.playPatch(p2); > } > catch (Exception e) > { > ErrorMsg.reportStatus (e); > } > } > > > The newly created Patch p2 is simply ignored > as "super.playPatch(p2)" just calls "super.playPatch()". > > So the whole code in the A6 driver looks superfluous. > It calls only "super.playPatch()" because of my changes. Original it calls "super.playPatch(Patch)", but the old driver.playPatch(Patch p) method did nothing with Patch p. From this point your are right. But I don't what the 2 lines "sysex[1180]..." and "sysex[1181]..." should do. These two lines doesn't appear in the sendPatch(IPatch) method. > In the Prophet 600 at least playPatch(IPatch) can > be changed to playPatch() as the changes are send > before using the Driver class's "send" method. > > Hmm, I suggest to replace the playPatch(IPatch) method > on the other synthdrivers with playPatch(), > remove the deprecated tag from playPatch(IPatch) > and change playPatch(IPatch) in the Driver class > to be an empty method, so that no new synthdriver > will use it until the method is overriden. > > Is that OK? For me it's OK. I'm always a little bit carefull because I don't like to break someones code. Bye Torsten |