I agree it's a bug.
So far I've done a simple c program that outputs the sysex correctly, so I would be able to patch.
The thing is that if we keep midiout object we need to change it's
interface (because it would have to accept a list instead of a float).
So maybe better to create a new object sysexout?
PS: On the other hand I need some help building/configuring, I open another thread...
IMHO this is a bug, so you should patch the source, then submit the patch to the tracker. Also it seems to bug differently on different OSs, only linux uses alsa. Pd's sysex implementation didn't work properly on WIN32 either last time I checked.On 2010-10-27 06:10, Enrique Vetere wrote:
Hi.
I've been trying to use midiout but it does not work when sending sysex
because it sends 1 byte at a time.
Chatting with matju on #irc where he showed me the source code, I think
the problem is that midiout uses ultimately sys_alsa_putmidibyte to send
snd_seq_ev_set_sysex(&ev,1,&data)
one byte at a time
So we thought about writing an external that uses alsa-midi functions
and he guided me the first steps.
Now, the problem is that this external would need access to structure
midi_handle, and variables alsa_midioutfd and alsa_nmidiout which are
defined in s_midi_alsa.c (because creating and opening ALSA ports is
handled there). The functions provided by s_midi are not good enough as
I need to
snd_seq_ev_set_sysex(&ev, data_array_size,data_array)
So my question is: is it possible to write such external? or I need to
patch the sources?
Martin