On Sat, Apr 20, 2013 at 11:01 AM, Len Ovens <len(a)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/