Peter Billam wrote:
> On 11/12/2012 08:44 AM, Andy wrote:
>>> Peter, if you want have a look at what I believe is the first
>>> program (other than those written by yourself of course) that
>>> makes use of the MIDI::ALSA library.
>> Actually I have done the first proper release now, more details here:
>>
http://www.yamahaforums.co.uk/forum/viewtopic.php?f=9&t=5915
>
> Look good :-) May it be useful !
>
> On that link you say:
>> Thanks to Sonus for his assistance in helping me understand
>> the MIDI/Sysex implementation of the RM50
>
> That's presumably the hard bit, those Sysex interfaces seem
> very undocumented. Where do you go to find out about them ?
Actually both Yamaha and Korg do document their Sysex interfaces quite well,
you usually find the sysex documentation on the last few pages of the
manual that comes with the synth (that's where I got the info from).
Judging by the manual of my Roland JV-1080 on the other hand Roland's
sysex documentation is a true mess. While it looks complete, it looks
very cryptic to me, not very readable and understandable.
Maybe it's better for the XV-2020 since that synth is newer?
>> Well I don't have a TX81Z, but if you donate one to me I would
>> be happy to write a similar voice editor for the TX81Z. :)
>
> Really, every synth that's ever been manufactured needs the same.
Indeed, but there are already some synth specific editors/sysex managers
available for Linux, see this thread:
http://www.linuxmusicians.com/viewtopic.php?f=19&t=6898
> (Mine would be a Roland XV-2020) If they're all separate apps,
> the core code has to be maintained in many forks; if they're all
> rolled into one cross-synth app then it'll become very big...
> In either case the synth-specific functionality should be kept
> as separate as possible from the core code: not always easy.
>
> Maybe there's enough in common between different synths of the
> same manufacturer to roll them into one manufacturer-specific app,
> or maybe there's enough in common globally, I don't know this Sysex
> world. What d'you reckon, Andy ?
General sysex managers that have plugins for specific synths do exist (mostly
for Windows/Mac but there is Jsynthlib written in Java that allegedly works on
Linux too, I never managed to get it working though) but IMHO that approach is
both extremely complex from a programmer point of view (you need to have a
very good understanding of a lot of synths and their various sysex
implementations to build a comprehensive abstraction model) and often comes
with compromises for the user, so I'm not keen on that approach.
Of course there is some code that can be shared (and maybe once I start
writing my second sysex manager, most likely for the Korg X5DR or the Oberheim
Matrix 1000) I will spot some code that I can put into a common .pm to be used
by both sysex managers, but trying to make the code as abstract as possible to
suit as many synths as possible is IMHO more hassle than it's worth.
One thing I found out though, you need to own or have access to the synth you
are programming for as the sysex documentation is never 100% complete (so some
things you can only find out by experimentation) and also usually contains
some errors.