[LAU] MOTU AVB series sample rate issue, JACK, and PulseAudio

Len Ovens len at ovenwerks.net
Tue Sep 19 18:44:37 UTC 2017

On Tue, 19 Sep 2017, Be wrote:

> As discussed on this list previously, there are some oddities trying to set 
> the Ultralite AVB's sample rate. This seems to cause some issues with 
> PulseAudio. If I start PulseAudio with the Ultralite AVB plugged in, it works 
> briefly but randomly drops out. When I plug in the Ultralite AVB after 
> PulseAudio is started, it does not appear as an output for PulseAudio and I 
> see this in PulseAudio's output:
> E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.
> E: [pulseaudio] module.c: Failed to load module "module-alsa-card" (argument: 
> "device_id="1" name="usb-MOTU_UltraLite_AVB_0001f2fffe005a12-00" 
> card_name="alsa_card.usb-MOTU_UltraLite_AVB_0001f2fffe005a12-00" 
> namereg_fail=false tsched=yes fixed_latency_range=no ignore_dB=no 
> deferred_volume=yes use_ucm=yes 
> card_properties="module-udev-detect.discovered=1""): initialization failed.

It looks like pulse audio does not yet have a profile for the Motu but 
sometimes matches it with something else... or, it does have a profile, 
but because the Motu can have different numbers of IOs it can't always 
match the Motu profile it has to the real Motu interface. I do not know if 
the PA profiles can be made that deal well with varying port numbers.

In my opinion, run jackd as your audio backend and use PA only as a 
desktop front end bridged to jack. Pulse should be started with both the 
ALSA and udev modules unloaded (or they should be unloaded prior to 
bridging to jack). I have in the past used the PA -jackdus-detect module, 
but now have a script that loads the jacksink/source modules the way I 
want. It is important that PA does not see any physical device when using 
jackd as PAs audio IF. The reason for this is that if PA can find any 
device it will use sync from it and that device will limit the jack master 
device to the device PA is synced to and (at least in my case) not allow 
jackd to freerun properly.

So Ardour export with PA bridged and PA can see the internal (HDA) audio 
IF equals crash. But if PA has no ALSA module loaded, everything is fine 
and reliable. If you wish to send PA's output to another IF besides the 
jackd master, use ALSA_out or zita-j2a to make it another jack output and 
run it through jackd. There can be as many PA to jackd bridges as you need 
(want) so that the movie you are watching can go through one IF and the 
skype call through another.

By running jackd as the PA backend, you present PA with a "sound card" 
that has a SR it knows it can't change (48k or whatever) and will do what 
it needs to for the input and output to match.

Len Ovens

More information about the Linux-audio-user mailing list