|
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
|