This weekend I have written some code to deal with MIDI system exclusive data. Primarly I wanted to create a graphical tool to do backups of the memory contents of my synthesizers. There are some tools available for Mac OS X and Windows, but there was none for Linux. So I had written SimpleSysexxer back in 2006, but it has some bugs and its backend code is rather experimental. So I removed all backend code from it and started from scratch.
I am still using the famous RtMidi classes written by Gary P. Scavone, which simplify the communication with the underlaying ALSA API a lot.
While coding and testing, I noticed that I get errors when sending certain test data. It turned out that this happens if the file size exceeds 16355 bytes. Unfortunately, I have at least two devices which produce such SysEx data. To ensure the error was not caused by some malformed files, I have created two example files. Both start with an 0xF0 byte and end with an 0xF7 byte, both sufficient to identify it as SysEx data on the MIDI bus. All the rest are just 0x00 bytes. One file is exactly 16355 bytes in size, the other one is exactly 16356 bytes. The first one can be sent, the second one causes an error.
I hope to get some help of the Linux Audio developer community concerning this issue, as I am not yet familiar enough with the ALSA API. I hope there is a coding workaround, because otherwise it needed patching, compiling and installing a custom Linux kernel. Not a problem during the cold and dark winter months. But hey, it’s summertime :) .
Hi,
Looking for other SysEx tools for Linux, I found his page … nice to see there’s still interest in SysEx software, regarding the growing popularity of software synths.
I’ve been busy with JSynthLib lately, and wonder if the same problem exists for Java apps. Otherwise, http://www.jsynthlib.org might be something for you.
If you need testers for your new SysEx app, please contact me.
I would also appreciate any help with the wiki jsynthlib.wikispaces.com for newbie SysEx driver coders.
Anyway, take it easy, enjoy the summertime ;-)
Thanks for the comment. I just got a new (firewire) mixer, so hacking is currently suspended for unknown reasons ;-) .
I simply want to have a simple GUI sysex tool for my very own needs, so I will continue to work on it anyway. The current code already is capable of loading, saving and sending sysex. Receiving sysex will be easy to add, but then it still requires a lot of work concerning the graphical user interface. As soon there are any news, I will post it here and @linux-audio-user