IMHO this happens because the base implementation is buggy.
Sending sysex has to happen as a stream, not byte per byte. So the midiout object would have to accept a list instead of a float.
The 1ms delay might be what korg needs to understand a sloopy message.
For information: What I try to do is send MMC sysex messages for transport control  (PLAY/STOP/REC/etc).
Sending byte per byte would work OK with ardour but wrong with qtractor. This might be because ardour is somewhat more resilient in the interpretation of the message (just as your korg synth works with 1ms delay).
Fixing the base implementation to accept list instead of float should work. Unfortunately I cannot test on OSX...

On 27 October 2010 10:37, Paulo Casaes <irmaosaturno@gmail.com> wrote:
Just to chime in, I was able to get midiout to send sysex data to a micro korg using midiout on Os X. What i discovered was that I had to put a 1ms delay between every byte or message being sent to midiout.

p


On 27/10/2010 09:36, Martin Peach wrote:
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?

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.

Martin

_______________________________________________
Pd-dev mailing list
Pd-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev


_______________________________________________
Pd-dev mailing list
Pd-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev