Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Miller,
yap I'm using ALSA.
btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante mario.buoninfante@gmail.com wrote:
Hi Miller,
yap I'm using ALSA. btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
This seems to be a specific problem with sysex-handling using linux/ALSA... if you're using 'OSS' MIDI back end it should work fine.
Incidentally, I think the best fix would be to start using portmidi to address linux/ALSA.
(An easier one would be to just use OSS but there are features in the ALSA driver such as loopback that I think you can't get in OSS emulation, so some MIDI users on linux are forced into the ALSA API.
cheers Miller
On Wed, Mar 14, 2018 at 10:49:28PM +0100, Simon Iten wrote:
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante mario.buoninfante@gmail.com wrote:
Hi Miller,
yap I'm using ALSA. btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
On 14 Mar 2018, at 22:53, Miller Puckette msp@ucsd.edu wrote:
Incidentally, I think the best fix would be to start using portmidi to address linux/ALSA.
ahh ok, sorry! funny you should mention that. i use hatari with a synth programmer that sends sysex exclusively and i had many problems in the past. as soon as the hatari code got updated to use portmidi it all started working properly, no dropouts or lost bytes anymore. so maybe you can have a peek there?
https://hatari.tuxfamily.org/download.html https://hatari.tuxfamily.org/download.html
yap I start thinking the same. also because I had a chat with a colleague who's a programmer, who told me that for example on MacOS there is a process called something like MIDI Manager which sits in the middle and buffers up all the messages, forwarding them to applications that are listening to the ports.
so probably this is what is missing (or simply working differently) on Linux with ALSA.
cheers,
Mario
On 14/03/18 21:53, Miller Puckette wrote:
This seems to be a specific problem with sysex-handling using linux/ALSA... if you're using 'OSS' MIDI back end it should work fine.
Incidentally, I think the best fix would be to start using portmidi to address linux/ALSA.
(An easier one would be to just use OSS but there are features in the ALSA driver such as loopback that I think you can't get in OSS emulation, so some MIDI users on linux are forced into the ALSA API.
cheers Miller
On Wed, Mar 14, 2018 at 10:49:28PM +0100, Simon Iten wrote:
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante mario.buoninfante@gmail.com wrote:
Hi Miller,
yap I'm using ALSA. btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Hi Simon,
yes the message is received and understood by other devices, so at the end of the day it's not a problem, mine is more curiosity :D
btw I've got a little update, after chatting with another Pd user, I figured it out that the problem doesn't occur on Pd 0.48.0 and 0.48.1 . but it does occur on Pd 0.46.1, the version I was using when I discovered this. so my suspect is that something changed in the code. I'll have a look at github. does anyone know anything about that>
cheers, Mario
On 14/03/18 21:49, Simon Iten wrote:
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante <mario.buoninfante@gmail.com mailto:mario.buoninfante@gmail.com> wrote:
Hi Miller,
yap I'm using ALSA.
btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Aha! Yes, Dan Wilcox contributed a whole raft of changes to s_midi_alsa.c August 2017. So it looks like we're in the clear after all...
cheers Miller
On Wed, Mar 14, 2018 at 10:06:10PM +0000, mario buoninfante wrote:
Hi Simon,
yes the message is received and understood by other devices, so at the end of the day it's not a problem, mine is more curiosity :D
btw I've got a little update, after chatting with another Pd user, I figured it out that the problem doesn't occur on Pd 0.48.0 and 0.48.1 . but it does occur on Pd 0.46.1, the version I was using when I discovered this. so my suspect is that something changed in the code. I'll have a look at github. does anyone know anything about that>
cheers, Mario
On 14/03/18 21:49, Simon Iten wrote:
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante <mario.buoninfante@gmail.com mailto:mario.buoninfante@gmail.com> wrote:
Hi Miller,
yap I'm using ALSA.
btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
amazing, this makes sense. now I'm just curious to have a look at the code and compare it with the latest version.
thanks for your help :D
cheers,
Mario
On 14/03/18 22:21, Miller Puckette wrote:
Aha! Yes, Dan Wilcox contributed a whole raft of changes to s_midi_alsa.c August 2017. So it looks like we're in the clear after all...
cheers Miller
On Wed, Mar 14, 2018 at 10:06:10PM +0000, mario buoninfante wrote:
Hi Simon,
yes the message is received and understood by other devices, so at the end of the day it's not a problem, mine is more curiosity :D
btw I've got a little update, after chatting with another Pd user, I figured it out that the problem doesn't occur on Pd 0.48.0 and 0.48.1 . but it does occur on Pd 0.46.1, the version I was using when I discovered this. so my suspect is that something changed in the code. I'll have a look at github. does anyone know anything about that>
cheers, Mario
On 14/03/18 21:49, Simon Iten wrote:
hi there,
i have sent sysex with puredata for some years now, and i never had any problems, even with large chunks. i have used attached abstraction to send sysex, maybe it helps?
midi IS a serial protocol, so it is perfectly valid to send one byte at a time at least over din midi. in fact i am doing that with arduinos all the time. (usb midi is a different beast)
do the “special” midiout noteon and noteoff messages work when a synthmodule or similar is connected?
On 14 Mar 2018, at 21:28, mario buoninfante <mario.buoninfante@gmail.com mailto:mario.buoninfante@gmail.com> wrote:
Hi Miller,
yap I'm using ALSA.
btw, I had a look at the source code (I want to clarify I'm not a C programmer :) ) and from what I found in x_midi.c and s_midi.c, it kind of make sense that [midiout] returns 1 byte at time.
it seems to me we're missing a way to detect outgoing sysex messages (maybe having a dedicated object could help), so there's no way to collect a sysex and send it out in one go (ie having an array to return). I apologize for my trivial description of the "problem", but this is what I think is causing this behaviour.
cheers,
Mario
On 13/03/18 04:37, Miller Puckette wrote:
Hi Mario -
Perhaps you said this in the previous message which I missed... are you using ALSA MIDI system or OSS?
MIDI support has always been a problem in Pd... largely because I don't have a lot of experience with it.
cheers Miller
On Tue, Mar 13, 2018 at 12:04:00AM +0000, mario buoninfante wrote:
Hi,
I ran few more tests on Linux trying to understand what's going on with [midiout] and sysex messages.
I discovered that it's not just about sysex. I'm monitoring MIDI from Pd with /KMidimon /and /GMIDImonitor/, and I noticed that also sending Note On messages with [midiout] seems to be in some way different then sending the same message using [noteout].
when Note On is sent using [midiout], this will spit single bytes that are recognized as single byte sysex messages by the MIDI monitors!!!!!
has anyone ever experienced the same?
cheers,
Mario
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management ->https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list