From: Takashi Iwai <tiwai@suse.de>
To: "Symbolic Debugger" <happy.debugging@gmail.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH v2 00/37] ALSA: Add MIDI 2.0 support
Date: Thu, 29 Jun 2023 08:40:47 +0200 [thread overview]
Message-ID: <87cz1eepow.wl-tiwai@suse.de> (raw)
In-Reply-To: <168800422777.22.14097919444187982640@mailman-web.alsa-project.org>
On Thu, 29 Jun 2023 04:03:47 +0200,
Symbolic Debugger wrote:
>
> Thanks again for your time to reply . I think my coin has dropped :-)
>
> 1 .So basically, we have GTB in the device descriptor and the FB information is an UMP call to the device by the ALSA driver. "The device should provide both info, in somehow compatible ways." . The process would be [a]. driver gets USB device descriptors, [b]. driver issues USB call to retrieve USB GTB descriptors and then [c] driver issues UMP stream call to retrieve the function block information. (if N/A, driver falls back on the GTB information). This information should be consistent with the groups defined in the GTB.
Correct.
> 2. When creating the device descriptors and GTB descriptors based on the 2020 USB 2.0 spec, it should work ? Would those port show up in ALSA or can only be access via /dev/umpC*D*
Yes, there has been no change about the GTB itself; USB MIDI spec is
unchanged. The recent MIDI 2.0 spec extended only UMP and MIDI-CI.
> 3. w/o duplicates with 2 GTB's and for 32 groups, for example, it would be 1st GTB has group 1~16 and 2nd GTB 17~23 ?. A FB could use the groups from both GTB's for example Group1 and 17.
First of all: you can't have more than 16 groups (per direction) on a
single EP. It's a hard limitation. So there can be no "Group 17".
(A UMP Group can be bidirectional.)
Imagine other way round: you have max 16 in and 16 out UMP Groups
where each Group has 16 channels, and GTB and FB just define how those
Groups are assigned to which actual I/O. Some multiple Groups may
belong to the I/O for the same purpose, and in that case, those Groups
can be put into a single FB / GTB.
> 4. If two functions uses all 16 groups, that would use up all 32 FB's , correct ?
If each FB contains one (single direction) Group and you have 16 in
and 16 out Groups, then yes, it'll be up to 32 FBs and GTBs, which is
the max number defined in the spec. But a FB / GTB can contain
multiple Groups for the same purpose, so I guess taking all 32 FBs
would be rather a rare case.
Takashi
next prev parent reply other threads:[~2023-06-29 6:42 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-23 7:53 [PATCH v2 00/37] ALSA: Add MIDI 2.0 support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 01/37] ALSA: rawmidi: Pass rawmidi directly to snd_rawmidi_kernel_open() Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 02/37] ALSA: rawmidi: Add ioctl callback to snd_rawmidi_global_ops Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 03/37] ALSA: rawmidi: UMP support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 04/37] ALSA: rawmidi: Skip UMP devices at SNDRV_CTL_IOCTL_RAWMIDI_NEXT_DEVICE Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 05/37] ALSA: ump: Add ioctls to inquiry UMP EP and Block info via control API Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 06/37] ALSA: ump: Additional proc output Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 07/37] ALSA: usb-audio: Manage number of rawmidis globally Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 08/37] ALSA: usb-audio: Define USB MIDI 2.0 specs Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 09/37] ALSA: usb-audio: USB MIDI 2.0 UMP support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 10/37] ALSA: usb-audio: Get UMP EP name string from USB interface Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 11/37] ALSA: usb-audio: Trim superfluous "MIDI" suffix from UMP EP name Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 12/37] ALSA: usb-audio: Create UMP blocks from USB MIDI GTBs Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 13/37] ALSA: ump: Redirect rawmidi substream access via own helpers Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 14/37] ALSA: ump: Add legacy raw MIDI support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 15/37] ALSA: usb-audio: Enable the " Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 16/37] ALSA: usb-audio: Inform inconsistent protocols in GTBs Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 17/37] ALSA: seq: Clear padded bytes at expanding events Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 18/37] ALSA: seq: Add snd_seq_expand_var_event_at() helper Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 19/37] ALSA: seq: Treat snd_seq_client object directly in client drivers Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 20/37] ALSA: seq: Drop dead code for the old broadcast support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 21/37] ALSA: seq: Check the conflicting port at port creation Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 22/37] ALSA: seq: Check validity before creating a port object Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 23/37] ALSA: seq: Prohibit creating ports with special numbers Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 24/37] ALSA: seq: Introduce SNDRV_SEQ_IOCTL_USER_PVERSION ioctl Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 25/37] ALSA: seq: Add UMP support Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 26/37] ALSA: seq: Add port inactive flag Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 27/37] ALSA: seq: Support MIDI 2.0 UMP Endpoint port Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 28/37] ALSA: seq: Add port direction to snd_seq_port_info Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 29/37] ALSA: seq: Add UMP group number " Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 30/37] ALSA: seq: Automatic conversion of UMP events Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 31/37] ALSA: seq: Allow suppressing UMP conversions Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 32/37] ALSA: seq: Bind UMP device Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 33/37] ALSA: seq: ump: Create UMP Endpoint port for broadcast Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 34/37] ALSA: seq: Add ioctls for client UMP info query and setup Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 35/37] ALSA: seq: Print UMP Endpoint and Block information in proc outputs Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 36/37] ALSA: seq: Add UMP group filter Takashi Iwai
2023-05-23 7:53 ` [PATCH v2 37/37] ALSA: docs: Add MIDI 2.0 documentation Takashi Iwai
2023-06-13 12:41 ` [PATCH v2 00/37] ALSA: Add MIDI 2.0 support happy.debugging
2023-06-13 12:53 ` Takashi Iwai
2023-06-13 13:24 ` Happy Debugging
2023-06-13 13:31 ` Takashi Iwai
2023-06-13 15:23 ` Symbolic Debugger
2023-06-14 6:01 ` Symbolic Debugger
2023-06-14 6:09 ` Takashi Iwai
2023-06-14 6:53 ` Takashi Iwai
2023-06-15 11:39 ` Symbolic Debugger
2023-06-16 12:23 ` Symbolic Debugger
2023-06-16 12:27 ` Takashi Iwai
2023-06-16 14:17 ` Symbolic Debugger
2023-06-17 15:07 ` Symbolic Debugger
2023-06-18 8:54 ` Takashi Iwai
2023-06-20 13:29 ` Symbolic Debugger
2023-06-28 6:52 ` Symbolic Debugger
2023-06-28 11:12 ` Takashi Iwai
2023-06-28 11:32 ` Symbolic Debugger
2023-06-28 14:20 ` Takashi Iwai
2023-06-29 2:03 ` Symbolic Debugger
2023-06-29 6:40 ` Takashi Iwai [this message]
2023-06-29 8:38 ` Symbolic Debugger
2023-07-03 10:15 ` Symbolic Debugger
2023-07-03 10:19 ` Takashi Iwai
2023-07-03 11:25 ` Symbolic Debugger
2023-07-03 12:09 ` Takashi Iwai
2023-07-03 12:54 ` Symbolic Debugger
2023-07-03 13:01 ` Takashi Iwai
2023-07-03 13:53 ` Symbolic Debugger
2023-07-12 13:26 ` Symbolic Debugger
2023-07-12 13:58 ` 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=87cz1eepow.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=happy.debugging@gmail.com \
/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