On Sun, 24 Nov 2024 22:31:13 +0100, Mark Lentczner wrote: > > I'm the author of amidiminder - a utility that keeps track of desired > connections between ALSA Seq (MIDI) ports. > > I've found a bug in the kernel part of the ALSA Sequencer, and am not sure > where or how to report it. > > Summary: > The events: > * SND_SEQ_EVENT_CLIENT_CHANGE is never sent > * SND_SEQ_EVENT_PORT_CHANGE is not sent on common port changes (name and > port info) > > I have a lot of detail on these bugs, what other software causes them to be > a problem (PureData), and where the missing code in the kernel > sound/core/seq files is. > > Before I dump all the details in this forum.... where is the right place > for me to report and/or discuss this? Those events aren't created indeed. I don't remember exactly, as the implementation was really old (decades ago), but I guess it was because it'd give too much broadcasting when the event is triggered at each client / port change. Actually it's trivial to enable those events. It's just a patch like below. But, I have to consider the result by this change and try to avoid the unnecessary event bombing before going ahead. thanks, Takashi -- 8< -- --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -1290,6 +1290,10 @@ static int snd_seq_ioctl_set_client_info(struct snd_seq_client *client, client->midi_version = client_info->midi_version; memcpy(client->event_filter, client_info->event_filter, 32); client->group_filter = client_info->group_filter; + + /* notify the change */ + snd_seq_system_client_ev_client_change(client->number); + return 0; } @@ -1413,6 +1417,9 @@ static int snd_seq_ioctl_set_port_info(struct snd_seq_client *client, void *arg) if (port) { snd_seq_set_port_info(port, info); snd_seq_port_unlock(port); + /* notify the change */ + snd_seq_system_client_ev_port_change(info->addr.client, + info->addr.port); } return 0; }