Thanks.Did the previous implementation fail with all your devices or only with 
some of them?Best,Giulio

      From: Albert Graef <>
 To: Giulio Moro <> 
Cc: Ticket 1272 <>; "" 
 Sent: Sunday, 16 October 2016, 19:08
 Subject: Re: [PD-dev] [pure-data:bugs] #1272 midiout not working correctly on 
Hi Giulio,

no, AFAICT that's not the way ALSA works. I haven't really looked in the ALSA 
code, but it seems that assembling the MIDI messages has to be done using the 
corresponding sequencer API calls. There might be some drivers which handle 
this, but I never had this working properly when outputting sysex using either 
internal ALSA connections or external MIDI gear via a USB-MIDI device.

All I can say is that the suggested patch seems to be the right way to do this 
(those API calls are there for a reason), and that it works for me with every 
MIDI equipment I tried it with.

On Sun, Oct 16, 2016 at 7:25 PM, Giulio Moro via Pd-dev <> 

Out of curiosity, is it not up to the receiving device to parse the received 
bytes in such a way that they form a coherent message? Or is there a "timeout" 
after which a sysex message is considered aborted ?I don't remember the latter 
from the specs, so I always assumed the former.Giulio

      From: Albert Graef <>
 Sent: Sunday, 16 October 2016, 18:17
 Subject: [PD-dev] [pure-data:bugs] #1272 midiout not working correctly on ALSA
 [bugs:#1272] midiout not working correctly on ALSAStatus: open
Group: v0.47
Created: Sun Oct 16, 2016 05:17 PM UTC by Albert Graef
Last Updated: Sun Oct 16, 2016 05:17 PM UTC
Owner: Miller PucketteThis has been there forever, and affects all Linux 
systems when using ALSA MIDI devices.sys_alsa_putmidibyte() in s_midi_alsa.c 
outputs individual bytes instead of complete MIDI messages. You can clearly see 
this, e.g., when sending a sysex message from Pd to an ALSA MIDI output and 
looking at the results in kmidimon. Instead of a proper sysex message you'll 
get a sequence of (malformed) single-byte messages.You can't just output single 
bytes of a multi-byte MIDI message with snd_seq_event_output_direct(), this 
only works with single-byte (such as system realtime) messages. The proper way 
to do this, so that it works with any MIDI message, is to use 
snd_midi_event_encode_byte() and output the message when it's complete. The 
following fix is from the pd-l2ork repo, but it should apply cleanly on the 
current pure-data master branch: pd/commit/9f5a265Sent from because is subscribed to 
pure-data/bugs/To unsubscribe from further messages, a project admin can change 
settings at pure-data/admin/bugs/options. Or, if 
this is a mailing list, you can unsubscribe from the mailing list.
______________________________ _________________
Pd-dev mailing list listinfo/pd-dev

______________________________ _________________
Pd-dev mailing list listinfo/pd-dev

Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany

Pd-dev mailing list

Reply via email to