So I tried [240, 1, 247( | [midiout] on Pd 0-42-0test1 and the message shows up on the MIDI plug. It also works to send one byte at a time. But with Pd0.40.3-extended20080324 it doesn't work, although [noteout] and [ctlout] work fine. This is with ALSA-MIDI and Jack. Martin
PSPunch wrote: > Does anyone have any opinion on the specs suggested by Martin? > Should [sysexout] behave in this manner, or would it be more suitable to > make this a new object rather than over write the conventional object > for compatibility? > > I have no idea if I will be skilled to fix this in the near future, but > I really would love to see some of my MIDI controllers in action. > > -- > David Shimamoto > > >> PSPunch wrote: >>> Martin, >>> >>> >>>> I'm looking at the source code in svn, assuming you use [midiout] to >>>> send sysex. >>>> The midiout object has one method, for floats : midiout_float(), in >>>> x_midi.c, line 681. >>>> It just calls outmidi_byte() in s_midi.c, line 239. If Pd was >>>> compiled with USEAPI_ALSA defined, then outmidi_byte calls >>>> sys_alsa_putmidibyte() in s_midi_alsa.c line 234, otherwise it calls >>>> sys_putmidibyte() in s_midi_oss.c line 182. >>> Do you mean that theoretically, Pd + ALSA MIDI should be working? >>> hmmm... >> Well it looks like it should but I just tried with a scope on the cable >> and got messages using [noteout] but nothing using [midiout] with alsa >> midi and jack. I tried sending bytes singly and in comma-separated >> messages as well as just lists. Nothing comes out. >> >>> >>> According to IOhannes, >>> >>>> the problem is rather, that ALSA sequencer does not support MIDI in a >>>> way Pd would like it, mainly: no raw midi. >> Yes, it looks like the ALSA function being called expects a complete >> sysex message but instead it's getting one byte at a time. I guess Pd >> should buffer the message until it gets an F7 (End of Exclusive) and >> then send the whole thing as one packet. Not too difficult except for >> anticipating what the the maximum message size is going to be. Maybe a >> [sysexout] object that takes lists of bytes (and inserts the F0 and F7) >> is in order... >> >>> Also I think one of the recent posts which I cannot locate now, >>> mentioned that it was just a matter of Pd using a function in ALSA API >>> other than what is used at the moment. >>> >> Well I think it's better to send a complete sysex packet, otherwise it >> could be trashed by a noteout or similar that occurs before the F7 goes >> out. Really Pd should buffer the packet and only then send it to ALSA. >> >> Martin >> > > > _______________________________________________ > [email protected] mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
