[LAU] ALSA multi plugin woes, joining two cards

Devin Anderson surfacepatterns at gmail.com
Sat Apr 20 18:37:40 UTC 2013


On Sat, Apr 20, 2013 at 11:01 AM, Len Ovens <len at ovenwerks.net> wrote:
>
> On Sat, April 20, 2013 10:06 am, Julien Claassen wrote:
>> Hello everyone!
>>    I've still got problems joining my twosoundcards (Delta 1010LT and EMU
>> 1212m). I've created the multi device for capture and playback, taken care
>> of
>> the bit width conversion and still it doesn't work. See the .asoundrc
>> below.
>
> Also, there have been threads about pcm-multi on this list
> before even with two "identical cards". Also, as far as I know, pcm-multi
> and RT don't play well and even with a more relaxed kernel there are xruns
> though they may not affect sound.

The main issue with the multi device is that it doesn't actually sync
up the polling of the two sound cards.  The multi device's polling
file descriptor is that of the master sound card registered with the
multi device.  When poll() returns, indicating that data is available,
it's because there's data available on the master sound card; however,
there is no guarantee that data is also available on the slave
devices.  The barrage of xruns that is seen when using the multi
device is caused by this issue.  A period's worth of data will be
available on the master sound card, but one or more slave devices will
have less than a period's worth of data.  JACK interprets this
situation as an xrun.

Unfortunately, the problem goes a bit deeper, because there
(currently) isn't any call in the ALSA API to make the polling of one
sound card depend on data being available on sound cards that are
linked as slaves.  Theoretically, snd_pcm_link(), which links the
start, stop, drain, pause, suspend, resume, reset, and prepare
operations of two cards, could be modified to also link the polling of
data.

> Using alsa-in/out or zita-a2j and j2a
> seem to have worked better in that case and may help in yours as well.

I've found that the alsa-in/out clients are terrible.  The zita
clients perform very well.

-- 
Devin Anderson
surfacepatterns (at) gmail (dot) com

blog - http://surfacepatterns.blogspot.com/
midisnoop - http://midisnoop.googlecode.com/
psinsights - http://psinsights.googlecode.com/
synthclone - http://synthclone.googlecode.com/


More information about the Linux-audio-user mailing list