[LAU] ALSA multi plugin woes, joining two cards

Julien Claassen julien at mail.upb.de
Sat Apr 20 17:06:42 UTC 2013


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.
   With Delta and EMU's analog I/O (device 0) JACK will start, but gives a lot 
of ALSA_PCM xruns. With the S/PDIF and/or ADAT/DSP part of the EMU card 
included JACK won't start or will shutdown immediately. Also ecasound/arecord 
won't work.
   Having tried the EMU S/PDIF on its own with arecord, I found, that it would 
only allow 8kHz samplerate, instead of the requested 48kHz. The EMU card is 
however setup to take the clocksource from the delta card, which works 
perfectly with 48kHz. OK, even it takes its clock from the outside (Lindy A/D 
converter).
   To test the S/PDIF in on the EMU I tried playing back something to the 
Delta's S/PDIF out, but only got silence.
   So it looks, like there is more than one problem. But I can't spot it. I've 
looked at the .asoundrc documentation again and the list of ALSA plugins. OK, 
there is the route plugin for creating interleaved audio, using the ttable, 
but for a start, I've read, that this will cause great latency. Anyway, I've 
built my JACK version myself and I don't see, why it shouldn't include complex 
MMAP. But that is a little further along the way.
   So here's my .asoundrc:
# The 8 ADAT ins of EMU 1212m, conversion to S16_LE
pcm.emu_adat {
 	type linear
 	slave {
 		pcm "hw:4,2"
 		format S32_LE
 	}
}

# The 2 Ins, 2 Outs of EMU 1212m, they have S16_LE
pcm.emu_analog {
 	type hw
 	card 4
 	device 0
}

# The 2 S/PDIF Ins and 2 S/PDIF Outs of EMU 1212m,they have S16_LE
pcm.emu_spdif {
 	type hw
 	card 4
 	device 1
}

# The 16 DSP out channels of EMU 1212m, they have S16_LE
pcm.emu_dsp {
 	type hw
 	card 4
 	device 3
}

# The M-Audio Delta 1010 LT, conversion from S32_LE to S16_LE
pcm.delta {
 	type linear
 	slave {
 		pcm "hw:1"
 		format S32_LE
 	}
}

# Multi capture device including EMU ADAT, Analog and S/PDIF channels and
# Delta analog and S/PDIF in channels
pcm.multi_capture {
 	type multi
 	slaves.a {
 		pcm "delta"
 		channels 12
 	}
 	slaves.b {
 		pcm "emu_analog"
 		channels 2
 	}
 	#slaves.c {
 	#	pcm "emu_spdif"
 	#	channels 2
 	#}
 	#slaves.d {
 	#	pcm "emu_adat"
 	#	channels 8
 	#}
 	bindings.0.slave a
 	bindings.0.channel 0
 	bindings.1.slave a
 	bindings.1.channel 1
 	bindings.2.slave a
 	bindings.2.channel 2
 	bindings.3.slave a
 	bindings.3.channel 3
 	bindings.4.slave a
 	bindings.4.channel 4
 	bindings.5.slave a
 	bindings.5.channel 5
 	bindings.6.slave a
 	bindings.6.channel 6
 	bindings.7.slave a
 	bindings.7.channel 7
 	bindings.8.slave a
 	bindings.8.channel 8
 	bindings.9.slave a
 	bindings.9.channel 9
 	bindings.10.slave b
 	bindings.10.channel 0
 	bindings.11.slave b
 	bindings.11.channel 1
 	#bindings.12.slave c
 	#bindings.12.channel 0
 	#bindings.13.slave c
 	#bindings.13.channel 1
 	#bindings.14.slave d
 	#bindings.14.channel 0
 	#bindings.15.slave d
 	#bindings.15.channel 1
 	#bindings.16.slave d
 	#bindings.16.channel 2
 	#bindings.17.slave d
 	#bindings.17.channel 3
 	#bindings.18.slave d
 	#bindings.18.channel 4
 	#bindings.19.slave d
 	#bindings.19.channel 5
 	#bindings.20.slave d
 	#bindings.20.channel 6
 	#bindings.21.slave d
 	#bindings.21.channel 7
}

# Control device for multi_capture, I chose card 1 (Dela), because it gives
# the clock signal.
ctl.multi_capture {
 	type hw
 	card 1
}

# Multi playback for EMU 1212m Analog, S/PDIF and DSP out channels as well as
# Delta 1010 LT's analog and S/PDIF out channels
pcm.multi_playback {
 	type multi
 	slaves.a {
 		pcm "delta"
 		channels 10
 	}
 	slaves.b {
 		pcm "emu_analog"
 		channels 2
 	}
 	slaves.c {
 		pcm "emu_spdif"
 		channels 2
 	}
 	#slaves.d {
 	#	pcm "emu_dsp"
 	#	channels 16
 	#}
 	bindings.0.slave a
 	bindings.0.channel 0
 	bindings.1.slave a
 	bindings.1.channel 1
 	bindings.2.slave a
 	bindings.2.channel 2
 	bindings.3.slave a
 	bindings.3.channel 3
 	bindings.4.slave a
 	bindings.4.channel 4
 	bindings.5.slave a
 	bindings.5.channel 5
 	bindings.6.slave a
 	bindings.6.channel 6
 	bindings.7.slave a
 	bindings.7.channel 7
 	bindings.8.slave a
 	bindings.8.channel 8
 	bindings.9.slave a
 	bindings.9.channel 9
 	bindings.10.slave b
 	bindings.10.channel 0
 	bindings.11.slave b
 	bindings.11.channel 1
 	bindings.12.slave c
 	bindings.12.channel 0
 	bindings.13.slave c
 	bindings.13.channel 1
 	#bindings.14.slave d
 	#bindings.14.channel 0
 	#bindings.15.slave d
 	#bindings.15.channel 1
 	#bindings.16.slave d
 	#bindings.16.channel 2
 	#bindings.17.slave d
 	#bindings.17.channel 3
 	#bindings.18.slave d
 	#bindings.18.channel 4
 	#bindings.19.slave d
 	#bindings.19.channel 5
 	#bindings.20.slave d
 	#bindings.20.channel 6
 	#bindings.21.slave d
 	#bindings.21.channel 7
 	#bindings.22.slave d
 	#bindings.22.channel 8
 	#bindings.23.slave d
 	#bindings.23.channel 9
 	#bindings.24.slave d
 	#bindings.24.channel 10
 	#bindings.25.slave d
 	#bindings.25.channel 11
 	#bindings.26.slave d
 	#bindings.26.channel 12
 	#bindings.27.slave d
 	#bindings.27.channel 13
 	#bindings.28.slave d
 	#bindings.28.channel 14
 	#bindings.29.slave d
 	#bindings.29.channel 15
}

# Control device for multi_playback, I chose card 1 (Delta) again as it is
# the clock source
ctl.multi_playback {
 	type hw
 	card 1
}

   Any idea anyone? Could it be a specific configuration issue of the EMU 1212m 
or is there a special kernel option - not directly related to sound -, which 
might help?
   Warm regards and thanks for any hints
         Julien

----------------------------------------
http://juliencoder.de/nama/music.html


More information about the Linux-audio-user mailing list