The pcm_multi plugin does not currently allow full duplex use of two or more soundcards simultaneously.

Bug #66657 reported by Luke Yelavich
2
Affects Status Importance Assigned to Milestone
alsa-lib (Ubuntu)
Fix Released
Wishlist
Daniel T Chen

Bug Description

The pcm_multi plugin is used to join two or more soundcards together to
create one virtual card. THis is very useful for something like the jack
audio connection kit. However, it doesn't work when an attempt is made
to use it in full duplex mode.

The attached patch works around this issue.

Related branches

Revision history for this message
Luke Yelavich (themuso) wrote :

Patch attached.

Revision history for this message
Luke Yelavich (themuso) wrote :

The correct patch.

Daniel T Chen (crimsun)
Changed in alsa-lib:
importance: Undecided → Wishlist
status: Unconfirmed → Confirmed
Daniel T Chen (crimsun)
Changed in alsa-lib:
status: Confirmed → In Progress
assignee: nobody → crimsun
Revision history for this message
Luke Yelavich (themuso) wrote :
Download full text (3.5 KiB)

This is still not possible to do with the latest alsa-lib release. Here is the output when I run the following jack command:

jackd -v -R -d alsa -C capture16 -P playback16 -r 44100 -p 64

getting driver descriptor from /usr/lib/libjack0.100.0/jack_alsa.so
getting driver descriptor from /usr/lib/libjack0.100.0/jack_dummy.so
getting driver descriptor from /usr/lib/libjack0.100.0/jack_freebob.so
getting driver descriptor from /usr/lib/libjack0.100.0/jack_oss.so
jackd 0.102.20
Copyright 2001-2005 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

JACK compiled with System V SHM support.
server `default' registered
loading driver ..
apparent rate = 44100
creating alsa driver ... playback16|capture16|64|2|44100|0|0|nomon|swmeter|-|32bit
configuring for 44100Hz, period = 64 frames, buffer = 2 periods
ALSA: final selected sample format for capture: 32bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit little-endian
ALSA: use 2 periods for playback
7898 waiting for signals
registered builtin port type 32 bit float mono audio
registered builtin port type 8 bit raw midi
clock source = system clock via gettimeofday
required capabilities not available
capabilities: =
new client: alsa_pcm, id = 1 type 1 @ 0x805b5c0 fd = -1
new buffer size 64
registered port alsa_pcm:capture_1, offset = 256
registered port alsa_pcm:capture_2, offset = 512
registered port alsa_pcm:capture_3, offset = 768
registered port alsa_pcm:capture_4, offset = 1024
registered port alsa_pcm:capture_5, offset = 1280
registered port alsa_pcm:capture_6, offset = 1536
registered port alsa_pcm:capture_7, offset = 1792
registered port alsa_pcm:capture_8, offset = 2048
registered port alsa_pcm:capture_9, offset = 2304
registered port alsa_pcm:capture_10, offset = 2560
registered port alsa_pcm:capture_11, offset = 2816
registered port alsa_pcm:capture_12, offset = 3072
registered port alsa_pcm:capture_13, offset = 3328
registered port alsa_pcm:capture_14, offset = 3584
registered port alsa_pcm:capture_15, offset = 3840
registered port alsa_pcm:capture_16, offset = 4096
registered port alsa_pcm:playback_1, offset = 0
registered port alsa_pcm:playback_2, offset = 0
registered port alsa_pcm:playback_3, offset = 0
registered port alsa_pcm:playback_4, offset = 0
registered port alsa_pcm:playback_5, offset = 0
registered port alsa_pcm:playback_6, offset = 0
registered port alsa_pcm:playback_7, offset = 0
registered port alsa_pcm:playback_8, offset = 0
registered port alsa_pcm:playback_9, offset = 0
registered port alsa_pcm:playback_10, offset = 0
registered port alsa_pcm:playback_11, offset = 0
registered port alsa_pcm:playback_12, offset = 0
registered port alsa_pcm:playback_13, offset = 0
registered port alsa_pcm:playback_14, offset = 0
registered port alsa_pcm:playback_15, offset = 0
registered port alsa_pcm:playback_16, offset = 0
++ jack_rechain_graph():
client alsa_pcm: internal client, execution_order=0.
-- jack_rechain_graph()
ALSA: poll time out, polled for 2174768 usecs
DRIVER NT: could not run driver cycle...

Read more...

Daniel T Chen (crimsun)
Changed in alsa-lib:
status: In Progress → Fix Committed
Luke Yelavich (themuso)
Changed in alsa-lib:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.