n o i s e f l e ur wrote:Oh, it's not hard to create a sysex control in Lemur. The issues people were having was in creating full-fat sysex editors, capable of sending and receiving patch (bank) dumps etc.
Just found a couple of old development pics of my Lemur + Max editor for the Yamaha Motif XS:
These were relatively early in development, but sadly I hit the limitations of the Lemur and semi-lost interest in continuing. I did progress it further at the time, and ended up with an extensive Max application which had dozens of popup windows for editing various parameters, though not all of them ended up being 'live'.
One problem I did solve at the time was that of the huge amounts of SysEx flying around all over the place. This was mostly done using JS widgets, but also in the Max 'circuits' logic. It was certainly capable of querying the XS, getting a full system dump and initialising the application such that the patches and performances on the XS were synchronised.
Edits in the application were also synchronised in real-time with the XS itself.
The last image above shows the 'BulkQuery' window there, which is in the process of receiving the dump from the XS, parsing it and making the data in it available to the various other windows.
A project I would very much like to revisit at a future date, only next time I'd write it as a framework such that you could plug different profiles into it for different synths, and I'd use C/C++ and OpenGL instead of a rapid development system like Max, which would make it massively smaller in size and far easier to distribute and maintain.
The Elf wrote:As one who finds OO languages utterly baffling and syntactically irritating ...
I hear you, especially on the 'syntactically irrirating' front. Not a fan of OO programming myself, though sometimes I have to dip in against my will!