MOTU UltraLight mk5 USB mode switching
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.
Attach (do not paste) output from alsa-info.sh --no-upload here.
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
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
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.
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
Yes, there was missing Type identifier. I edited my suggestion. Please, correct this in your test file.
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.