alsa-ucm-conf icon indicating copy to clipboard operation
alsa-ucm-conf copied to clipboard

MOTU UltraLight mk5 USB mode switching

Open TeeTeufel opened this issue 1 month ago • 3 comments

Hi,

I am currently stuck getting higher sample rates work with the MOTU UltraLight mk5. Automatic switching between 44.1 and 48khz works fine, but anything higher not.

For 88.2/96 khz and 176.4/192 khz the USB mode must be switched, but nothing happens.

When setting the sample rate on the audio interface itself, audio output stays silent.

System:

  • Fedora 43
  • Pipewire
  • Latest firmware on the interface

What do you need from me?

Could this be an issue with pipewire rather than alsa or ucm? If yes, do you maybe have any resources that could give me some hints? Consulting existing issues, forums, chatgpt and perplexity did not result in any improvement.

Thank you very much for anything that could help.

TeeTeufel avatar Nov 05 '25 21:11 TeeTeufel

Attach (do not paste) output from alsa-info.sh --no-upload here.

perexg avatar Nov 06 '25 19:11 perexg

Here is the output:

alsa-info.txt

TeeTeufel avatar Nov 06 '25 21:11 TeeTeufel

As seen in USB endpoint enumeration bellow, there are several channel / rate combinations:

playback 22 / capture 20, rates 44100, 48000 playback 18 / capture 16, rates 88200, 96000 playback 10 / capture 10, rates 176400, 192000

But the current https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf file support only the first combination. More verbs should be defined to config file to support also other channel/rate combinations. It means also to add different HiFi.conf files and determine the channel / jack routes.

USB EndPoint enumeration

MOTU UltraLite-mk5 at usb-0000:c3:00.4-1.1.1.3.1, high speed : USB Audio

Playback: Status: Running Interface = 1 Altset = 1 Packet Size = 462 Momentary freq = 48000 Hz (0x6.0000) Interface 1 Altset 1 Format: S24_3LE Channels: 22 Endpoint: 0x02 (2 OUT) (ASYNC) Rates: 44100, 48000 Data packet interval: 125 us Bits: 24 Sync Endpoint: 0x83 (3 IN) Sync EP Interface: 2 Sync EP Altset: 1 Implicit Feedback Mode: Yes Interface 1 Altset 2 Format: S24_3LE Channels: 18 Endpoint: 0x02 (2 OUT) (ASYNC) Rates: 88200, 96000 Data packet interval: 125 us Bits: 24 Sync Endpoint: 0x83 (3 IN) Sync EP Interface: 2 Sync EP Altset: 2 Implicit Feedback Mode: Yes Interface 1 Altset 3 Format: S24_3LE Channels: 10 Endpoint: 0x02 (2 OUT) (ASYNC) Rates: 176400, 192000 Data packet interval: 125 us Bits: 24 Channel map: FL FR FC LFE RL RR FLC FRC RC SL Sync Endpoint: 0x83 (3 IN) Sync EP Interface: 2 Sync EP Altset: 3 Implicit Feedback Mode: Yes

Capture: Status: Running Interface = 2 Altset = 1 Packet Size = 425 Momentary freq = 48000 Hz (0x6.0000) Interface 2 Altset 1 Format: S24_3LE Channels: 20 Endpoint: 0x83 (3 IN) (ASYNC) Rates: 44100, 48000 Data packet interval: 125 us Bits: 24 Interface 2 Altset 2 Format: S24_3LE Channels: 16 Endpoint: 0x83 (3 IN) (ASYNC) Rates: 88200, 96000 Data packet interval: 125 us Bits: 24 Interface 2 Altset 3 Format: S24_3LE Channels: 10 Endpoint: 0x83 (3 IN) (ASYNC) Rates: 176400, 192000 Data packet interval: 125 us Bits: 24 Channel map: FL FR FC LFE RL RR FLC FRC RC SL

perexg avatar Nov 07 '25 21:11 perexg

So I copied the HiFI profile and renamed it and changed the specific channel counts, names and removed the named devices that are not available with the specific sample rates. I got no errors so far but the behaviour stayed the same.

Then I tried experimenting with the Direct mode, because having all these named channels are confusing and clutter graphical tools. As for me, I use the higher sample rates with reduced channel counts only for Workflows with a DAW, where the channel names do not matter. So I would think expanding the config with named channels is not necessary. Unfortunately, the best I could get where no errors and an inactive device.

I noticed the "ProAudio" Profile in my sound options, but this does not seem to be a UCM profile and rather a pipewire implementation, that also does not work with changing the sample rate.

It seems I lack crucial knowledge and understanding to get this to work. I would appreciate If someone could give me some hints or resources on working with the direct mode.

I published my experiments derived from the HiFi profile here: https://github.com/TeeTeufel/ALSA-UCM-MOTU-UltraLight-mk5-config

TeeTeufel avatar Nov 09 '25 19:11 TeeTeufel

I got no errors so far but the behaviour stayed the same.

The profiles should be switched manually (in sound GUI for your desktop manager or another tool like pavucontrol).

The direct profiles may be defined in UltraLite-mk5.conf as:

If.direct1 {
	Condition { Type AlwaysTrue }
	True {
		Define.DirectPlaybackChannels 22
		Define.DirectCaptureChannels 20

		Include.dhw.File "/common/direct.conf"
	}
}

If.direct2 {
	Condition { Type AlwaysTrue }
	True {
		Define.DirectPlaybackChannels 18
		Define.DirectCaptureChannels 16

		Include.dhw.File "/common/direct.conf"
	}
}

If.direct3 {
	Condition { Type AlwaysTrue }
	True {
		Define.DirectPlaybackChannels 10
		Define.DirectCaptureChannels 10

		Include.dhw.File "/common/direct.conf"
	}
}

EDIT: Added missing Type identifier.

perexg avatar Nov 09 '25 21:11 perexg

This exact code does not seem to work with UCM2. I got the following errors: alsa-lib conf.c:2014:(_snd_config_load_with_include) _toplevel_:10:10:Unexpected char alsa-lib utils.c:375:(uc_mgr_config_load_into) could not load configuration file /usr/share/alsa/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf alsa-lib parser.c:78:(uc_mgr_config_load_file) error: failed to open file /usr/share/alsa/ucm2/USB-Audio/MOTU/UltraLite-mk5.conf: -22 alsa-lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:3 use case configuration -22

TeeTeufel avatar Nov 10 '25 01:11 TeeTeufel

Yes, there was missing Type identifier. I edited my suggestion. Please, correct this in your test file.

perexg avatar Nov 10 '25 08:11 perexg

Thank you, no errors any more but I see no Direct profile I can choose from when using pavucontrol. I tried changing the default values to match a specific channel count but when I do this the default Direct option is missing too.

TeeTeufel avatar Nov 10 '25 09:11 TeeTeufel