** [bugs:#1272] midiout not working correctly on ALSA**

**Status:** 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 Puckette

This has been there forever, and affects all Linux systems when using ALSA MIDI 

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:


Sent from sourceforge.net because pd-dev@lists.iem.at is subscribed to 

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/pure-data/admin/bugs/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
Pd-dev mailing list

Reply via email to