On Sat, 7 Mar 2015, Kalvas, Taneli wrote:
I am developing a patch librarian for a synthesizer. Because the communication happens with Midi sysex and timing is not relevant I chose RawMIDI interface and not the alsa sequencer. The problem I have encountered is that writing to the midi port with snd_rawmidi_write() seems to broken. The function accepts any size of data block and claims to have sent everything. In reality only a part of the message is sent. For a large block size I can see the activity light blinking for fraction of a second. This happens both in blocking and non-blocking mode. I would expect the snd_rawmidi_write() to accept only a part of the message.
Can't help with rawmidi, but I can at least report that my experience using the sequencer interface has been that it is rather straightforward to use, even if just using it to send and transmit sysex data, even when the data is longer than 300 bytes. (See for instance https://github.com/polluxsynth/xtor/blob/master/midi.c ( midi_send_sysex() and midi_input() functions).
/Ricard