From: Takashi Iwai <tiwai@suse.de>
To: Jaroslav Kysela <perex@perex.cz>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH 24/36] ALSA: seq: Add UMP support
Date: Mon, 22 May 2023 12:31:47 +0200 [thread overview]
Message-ID: <87h6s4y7vw.wl-tiwai@suse.de> (raw)
In-Reply-To: <87jzx0yevr.wl-tiwai@suse.de>
On Mon, 22 May 2023 10:00:40 +0200,
Takashi Iwai wrote:
>
> On Mon, 22 May 2023 09:34:45 +0200,
> Jaroslav Kysela wrote:
> >
> > On 19. 05. 23 11:31, Takashi Iwai wrote:
> > > Starting from this commit, we add the basic support of UMP (Universal
> > > MIDI Packet) events on ALSA sequencer infrastructure. The biggest
> > > change here is that, for transferring UMP packets that are up to 128
> > > bits, we extend the data payload of ALSA sequencer event record when
> > > the client is declared to support for the new UMP events.
> > >
> > > A new event flag bit, SNDRV_SEQ_EVENT_UMP, is defined and it shall be
> > > set for the UMP packet events that have the larger payload of 128
> > > bits, defined as struct snd_seq_ump_event.
> > >
> > > For applications that want to access the UMP packets, first of all, a
> > > sequencer client has to declare the user-protocol to match with the
> > > latest one via the new SNDRV_SEQ_IOCTL_USER_PVERSION; otherwise it's
> > > treated as if a legacy client without UMP support.
> > >
> > > Then the client can switch to the new UMP mode (MIDI 1.0 or MIDI 2.0)
> > > with a new field, midi_version, in snd_seq_client_info. When switched
> > > to UMP mode (midi_version = 1 or 2), the client can write the UMP
> > > events with SNDRV_SEQ_EVENT_UMP flag. For reads, the alignment size
> > > is changed from snd_seq_event (28 bytes) to snd_seq_ump_event (32
> > > bytes). When a UMP sequencer event is delivered to a legacy sequencer
> > > client, it's ignored or handled as an error.
> >
> > The internal struct snd_seq_event_cell is also extended by 4 bytes. I
> > think that it is worth to note this in this commit (the memory
> > footprint is slightly growing).
>
> Yes, will do that. But note that the size growth of
> snd_seq_event_cell happens only for 32bit archs (there was already
> padding on 64bit archs).
>
> > Maybe handle !SND_UMP here, but we can
> > wait, if someone really requires this optimization.
>
> Right, I began with that, but I threw it away in the end as it becomes
> unnecessarily complex.
Actually the optimization with CONFIG_SND_SEQ_UMP was already done;
unless CONFIG_SND_SEQ_UMP is set, the old size of snd_seq_event_cell
is still kept. The definition of union __snd_seq_event in
seq_memory.c takes care of the conditional builds.
What I meant was to adjust the cell size dynamically depending on the
supported midi_version, and this will make things too flaky.
Takashi
next prev parent reply other threads:[~2023-05-22 10:33 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-19 9:30 [PATCH 00/36] ALSA: Add MIDI 2.0 support Takashi Iwai
2023-05-19 9:30 ` [PATCH 01/36] ALSA: rawmidi: Pass rawmidi directly to snd_rawmidi_kernel_open() Takashi Iwai
2023-05-22 5:40 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 02/36] ALSA: rawmidi: Add ioctl callback to snd_rawmidi_global_ops Takashi Iwai
2023-05-22 5:41 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 03/36] ALSA: rawmidi: UMP support Takashi Iwai
2023-05-22 6:34 ` Jaroslav Kysela
2023-05-22 7:21 ` Takashi Iwai
2023-05-22 8:08 ` Jaroslav Kysela
2023-05-22 10:27 ` Takashi Iwai
2023-05-22 12:27 ` Takashi Iwai
2023-05-22 16:22 ` Takashi Iwai
2023-05-22 19:01 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 04/36] ALSA: rawmidi: Skip UMP devices at SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE Takashi Iwai
2023-05-22 6:36 ` Jaroslav Kysela
2023-05-22 7:04 ` Takashi Iwai
2023-05-19 9:30 ` [PATCH 05/36] ALSA: ump: Additional proc output Takashi Iwai
2023-05-22 6:37 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 06/36] ALSA: usb-audio: Manage number of rawmidis globally Takashi Iwai
2023-05-22 6:39 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 07/36] ALSA: usb-audio: Define USB MIDI 2.0 specs Takashi Iwai
2023-05-19 9:46 ` Greg Kroah-Hartman
2023-05-22 6:41 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 08/36] ALSA: usb-audio: USB MIDI 2.0 UMP support Takashi Iwai
2023-05-22 6:47 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 09/36] ALSA: usb-audio: Get UMP EP name string from USB interface Takashi Iwai
2023-05-22 6:48 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 10/36] ALSA: usb-audio: Trim superfluous "MIDI" suffix from UMP EP name Takashi Iwai
2023-05-22 6:49 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 11/36] ALSA: usb-audio: Create UMP blocks from USB MIDI GTBs Takashi Iwai
2023-05-22 6:50 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 12/36] ALSA: ump: Redirect rawmidi substream access via own helpers Takashi Iwai
2023-05-22 6:54 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 13/36] ALSA: ump: Add legacy raw MIDI support Takashi Iwai
2023-05-22 7:00 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 14/36] ALSA: usb-audio: Enable the " Takashi Iwai
2023-05-22 7:02 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 15/36] ALSA: usb-audio: Inform inconsistent protocols in GTBs Takashi Iwai
2023-05-22 7:03 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 16/36] ALSA: seq: Clear padded bytes at expanding events Takashi Iwai
2023-05-22 7:04 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 17/36] ALSA: seq: Add snd_seq_expand_var_event_at() helper Takashi Iwai
2023-05-22 7:06 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 18/36] ALSA: seq: Treat snd_seq_client object directly in client drivers Takashi Iwai
2023-05-22 7:09 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 19/36] ALSA: seq: Drop dead code for the old broadcast support Takashi Iwai
2023-05-22 7:11 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 20/36] ALSA: seq: Check the conflicting port at port creation Takashi Iwai
2023-05-22 7:13 ` Jaroslav Kysela
2023-05-19 9:30 ` [PATCH 21/36] ALSA: seq: Check validity before creating a port object Takashi Iwai
2023-05-22 7:14 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 22/36] ALSA: seq: Prohibit creating ports with special numbers Takashi Iwai
2023-05-22 7:15 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 23/36] ALSA: seq: Introduce SNDRV_SEQ_IOCTL_USER_PVERSION ioctl Takashi Iwai
2023-05-22 7:32 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 24/36] ALSA: seq: Add UMP support Takashi Iwai
2023-05-22 7:34 ` Jaroslav Kysela
2023-05-22 8:00 ` Takashi Iwai
2023-05-22 10:31 ` Takashi Iwai [this message]
2023-05-22 11:59 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 25/36] ALSA: seq: Add port inactive flag Takashi Iwai
2023-05-22 7:35 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 26/36] ALSA: seq: Support MIDI 2.0 UMP Endpoint port Takashi Iwai
2023-05-22 7:37 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 27/36] ALSA: seq: Add port direction to snd_seq_port_info Takashi Iwai
2023-05-22 7:43 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 28/36] ALSA: seq: Add UMP group number " Takashi Iwai
2023-05-22 7:44 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 29/36] ALSA: seq: Automatic conversion of UMP events Takashi Iwai
2023-05-22 7:48 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 30/36] ALSA: seq: Allow suppressing UMP conversions Takashi Iwai
2023-05-22 7:49 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 31/36] ALSA: seq: Bind UMP device Takashi Iwai
2023-05-22 7:52 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 32/36] ALSA: seq: ump: Create UMP Endpoint port for broadcast Takashi Iwai
2023-05-22 7:52 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 33/36] ALSA: seq: Add ioctls for client UMP info query and setup Takashi Iwai
2023-05-22 7:54 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 34/36] ALSA: seq: Print UMP Endpoint and Block information in proc outputs Takashi Iwai
2023-05-22 7:55 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 35/36] ALSA: seq: Add UMP group filter Takashi Iwai
2023-05-22 7:56 ` Jaroslav Kysela
2023-05-19 9:31 ` [PATCH 36/36] ALSA: docs: Add MIDI 2.0 documentation Takashi Iwai
2023-05-22 7:58 ` Jaroslav Kysela
2023-06-13 3:22 ` happy.debugging
2023-06-13 6:01 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h6s4y7vw.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=perex@perex.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox