[PD-dev] midiout

Enrique Vetere evetere at gmail.com
Wed Oct 27 14:59:24 CEST 2010


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 at 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 at iem.at
>> http://lists.puredata.info/listinfo/pd-dev
>>
>
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20101027/d281de09/attachment.htm>


More information about the Pd-dev mailing list