On Tue, 13 Jun 2023 14:41:07 +0200, happy.debugging@gmail.com wrote:
Hello I have a few questions:
- As default, USB-audio driver will take the alternate setting for MIDI 2.0 interface: Does this mean that the ALSA driver will default to Alt Function 1 if it exists ?
Yes.
- What happens when using a kernel that does not support Alt Function 1 (MIDI 2.0) and device with a (much longer) MIDI 2.0 descriptor is attached ?
It falls back to MIDI 1.0 interface.
- " However, user may let the driver falling back to the old MIDI 1.0 interface by a module option, too." Can or how it this done via the ALSA API ?
You can't. Only via a module option or kconfig.
If the switch is made, does an ALSA client require to re-enumerate all the ports ? 4. Is there a way to force a specific device (port) to Legacy MIDI 1.0 ?
If demanded, we can implement a device-specific quirk for that.
- Is there a way , via ALSA, to select UMP MIDI 1.0 protocol instead of MIDI 2.0 UMP protocol.
Use the UMP 1.1 Streaming command to switch the protocol.
- To which protocol does the driver default ? UMP MIDI 1.0 or UMP MIDI 2.0 ?
Whatever the device sets as default.
- Does the driver do anything related to Jitter Reduction ? How/is this supported via the ALSA API ?a
JRTS is sent as normal UMP packet (also as sequencer events). No particular API is provided for JRTS, so far.
- Does the driver do anything related to Bandwidth restriction ? How/is this supported via the ALSA API ?
Currently no restriction is. The bandwidth is provided via the API, but it's only for information.
- Are/will UMP streaming messages be supported ? (new feature in MIDI 2.0 specification), if yes, how ?
It was already implemented in kernel UMP core. See the recent posts.
- Is function block information supported via ALSA, i.e added in the ALSA Port information ?
Ditto.
Takashi