From: Frankie F. <jsy...@te...> - 2011-12-29 10:55:21
|
On 29/12/2011 09:37, Martin Tarenskeen wrote: > I am not completely happy with the TX81Z and DX100 drivers anyway. In the > (I hope not too far) future I hope to be able to develop drivers > that should work on the complete TX81Z "compatible" 4-op FM synths: > > A driver to support: DX21/27/100, DX11, TX81Z, WT11 > > A driver to support: YS100/200/B200/TQ5, V50, and DS55 > > The problem is: All these synths use the same SysEx bank format (32 > patches) but bytes that are described as "usused" or "reserved" in the > SysEx specs for one synth but are really used for new parameters in > another synth. This should not be a big problem. Such parameters will not > be recognized by some synths, but the JSynthLib drivers should be careful > not to overwrite such "unused" parameter addresses with NULL values. (I > have not checked yet what the current TX81Z and DX100 drivers do). For > example it should be possible to load and save a TX81Z patch or bank in a > DX21 ignoring the TX81Z additional parameters, but without loosing them. > > This is perfectly possible to handle when using the bank format (VMEM), > but is a problem for separate patches: There are SIX different SysEx data > formats for this: VCED (all models), ACED (TX81Z and newer), ACED2 (DX11, > V50), ACED3 (V50), EFEDS (YS100/200/B200/TQ5), DLY (DS55). > > Therefore, in my opinion, a "universal" driver for Yamaha 4-op FM synths > should store patches and banks in the compressed VMEM bankformat (128 > bytes of data for one patch) even when storing individual patches. Only > when sending single patches to the synth this should be converted to > VCED/ACED/etc. sysex editbuffer format. > > Such a driver would be usable on a complete family of Yamaha synths! > That might work quite nicely. I have done a partial implementation of remote control stuff to get at individual patches and banks of the TX81z. However I don't have any of the other synths so its not really possible for me to do this for any of the other devices as its impossible for me to test it. Whereas if there was a universal driver, the remote control stuff that I had done for TX81z might transfer over to other synths for free (depending how the menus are set up). Plus, if someone reports a bug on e.g. the WT11, then maybe the bug is also reproducible on the TX81z which would mean it could be fixed on the TX81z as well. One of the problems for JSL that I have been pondering is how can you verify a driver still works if you don't have access to the synth - a salient point given the two refactoring efforts in progress. One approach might be to write some kind of test stubs that emulates/verifies a synth's sysex implementation. But if one driver supports several similar synths you can test 90% of the driver on the synth you happen to have. Though you still end up needing access to the synth to test the last 10% that might be specific to that one synth. frankie |