[LAU] ALSA multi plugin woes, joining two cards

From: Julien Claassen <julien@email-addr-hidden>
Date: Sat Apr 20 2013 - 20:06:42 EEST

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
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Sat Apr 20 20:15:02 2013

This archive was generated by hypermail 2.1.8 : Sat Apr 20 2013 - 20:15:03 EEST