Problems with ALSA pcm_multi

Index

The ALSA pcm_multi plugin provides a means of using multiple sound cards with applications requiring a single audio interface (eg. JACK). Here's an example .asoundrc file showing how to use it. Unfortunately pcm_multi has a few problems that need to be worked around.


Duplex Operation Doesn't Work with JACK

A change was made in alsa-lib-1.0.9rc1 which had the unintended effect of preventing pcm_multi from working with jackd in duplex mode, ie. only the virtual capture or playback device could be started, not both at the same time. This problem still exists in alsa-lib-1.0.13. To make it work it's necessary to remove the linking code which was added in pcm_multi.c rev 1.89. It isn't needed here anyway. Here's a patch that removes it from alsa-lib versions 1.0.10 to 1.0.13 which fixes the problem.

Update: This problem has been fixed in alsa-lib-1.0.14.


Realtime (-rt) Kernel Doesn't Work with pcm_multi and JACK

Users may also have problems using the -rt kernel with pcm_multi. On my dual Opteron 240 system, the -rt kernel gives lots of xruns or even locks up completely when using pcm_multi with jackd, even though it works fine with a single sound card. For the time being, users of pcm_multi will have to use a non-rt kernel with CONFIG_PREEMPT=y if they experience similar behaviour. There have been reports that -rt kernels work with pcm_multi on AMD64x2 dual core systems, but so far I have been unable to confirm this on my own hardware. YMMV.


Applications Report Lots of xruns

There is some kind of interaction between jackd and pcm_multi which causes some JACK clients to report lots of xruns even though alsa_pcm doesn't report any and there is nothing audibly wrong. JAMin, for example does this if using less than the default maximum period size, and some qjackctl users have reported it too. This is inconvenient but appears to be harmless (although users should still watch out for xrun messages from alsa_pcm, which indicate real xruns).

Index    Contact

Last updated July 13 2007