[ecasound] capture from two delta 1010LTs at once

From: Bery Rinaldo <ecasound@email-addr-hidden>
Date: Wed Nov 16 2005 - 15:49:26 EET

Hello,

I'm new to the list, so please forgive any newbie-ness ;-). I have two
M-Audio Delta 1010LTs installed in a PIII-550MHz PC running Fedora Core
4. FC4 recognized the cards after installation and I am able to record
from the two cards in separate chains as follows:

ecasound -t:10 \
  -a:1 -f:16,8,44100 -i:alsa,analog8_1 -o:ana8_1.wav \
  -a:2 -f:16,8,44100 -i:alsa,analog8_2 -o:ana8_2.wav

I am trying to use the "multi" feature of ALSA with ecasound to record
all 16 analog channels of the two cards but get overrun errors when
running this command:

ecasound -t:10 \
  -a:1 -f:16,16,44100 -i:alsa,all16 \
  -a:1 -o:all16.wav

Here's the output:

# sh -x doit16_16
+ ecasound -t:10 -a:1 -f:16,16,44100 -i:alsa,all16 -a:1 -o:all16.wav
********************************************************************************
* ecasound v2.4.3 (C) 1997-2005 Kai Vehmanen and others
********************************************************************************
- [ Session created ]
----------------------------------------------------------
- [ Chainsetup created (cmdline) ]
---------------------------------------------
(eca-chainsetup-parser) Set processing time to 10.00.
- [ Connecting chainsetup ]
----------------------------------------------------
(eca-chainsetup) 'rt' buffering mode selected.
(eca-chainsetup) Audio object "alsa", mode "read".
(audio-io) Format: s16_le, channels 16, srate 44100, interleaved.
(eca-chainsetup) Audio object "all16.wav", mode "read/write".
(audio-io) Format: s16_le, channels 16, srate 44100, interleaved.
- [ Chainsetup connected ]
-----------------------------------------------------
(eca-control-objects) Connected chainsetup: "command-line-setup".
- [ Controller/Starting batch processing ]
-------------------------------------
- [ Engine init - Driver start ]
-----------------------------------------------
(eca-engine) Using realtime-scheduling (SCHED_FIFO:50).
Unknown device state '3'
... (repeats many times)
Unknown device state '3'
(audioio-db-client) WARNING: Overrun in writing to "all16.wav". Trying
to recover.
Unknown device state '3'
...
Unknown device state '3'
(audioio-db-client) WARNING: Overrun in writing to "all16.wav". Trying
to recover.
warning! playback overrun - samples lost! Break was at least 113.20 ms
long.
Unknown device state '3'
...
Unknown device state '3'
(audioio-db-client) WARNING: Overrun in writing to "all16.wav". Trying
to recover.
warning! playback overrun - samples lost! Break was at least 43.28 ms long.
Unknown device state '3'
...
Unknown device state '3'
(audioio-db-client) WARNING: Overrun in writing to "all16.wav". Trying
to recover.
warning! playback overrun - samples lost! Break was at least 43.39 ms long.
Unknown device state '3'
...
Unknown device state '3'
- [ Controller/Batch processing finished ]
-------------------------------------
(eca-control-objects) Disconnecting chainsetup: "command-line-setup".
- [ Chainsetup disconnected ]
--------------------------------------------------
WARNING! While reading from ALSA-pcm device C0D0, there were 3 overruns.
(audioio-db-client) There were total 4 xruns.
#

I've experimented with the asound.conf file to try just capturing from
one channel each card (see "pcm.some") but get the same sorts of
messages. FYI, here is my /etc/asound.conf file:

pcm.ice1712_1 {
         type hw
         card 1
         device 0
}

pcm.analog8_1 {
         type plug
         ttable.0.0 1
         ttable.1.1 1
         ttable.2.2 1
         ttable.3.3 1
         ttable.4.4 1
         ttable.5.5 1
         ttable.6.6 1
         ttable.7.7 1
         slave.pcm ice1712_1
}

#SPDIF channels only
pcm.spdif_1 {
         type plug
         ttable.0.8 1
         ttable.1.9 1
         slave.pcm ice1712_1
}

pcm.ice1712_2 {
         type hw
         card 2
         device 0
}

pcm.analog8_2 {
         type plug
         ttable.0.0 1
         ttable.1.1 1
         ttable.2.2 1
         ttable.3.3 1
         ttable.4.4 1
         ttable.5.5 1
         ttable.6.6 1
         ttable.7.7 1
         slave.pcm ice1712_2
}

#SPDIF channels only
pcm.spdif_2 {
         type plug
         ttable.0.8 1
         ttable.1.9 1
         slave.pcm ice1712_2
}

#Combine all 16 analog channels from both cards
pcm.all16 {
        type multi;
        slaves.a.pcm analog8_1;
        slaves.a.channels 8;
        slaves.b.pcm analog8_2;
        slaves.b.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 b;
        bindings.8.channel 0;
        bindings.9.slave b;
        bindings.9.channel 1;
        bindings.10.slave b;
        bindings.10.channel 2;
        bindings.11.slave b;
        bindings.11.channel 3;
        bindings.12.slave b;
        bindings.12.channel 4;
        bindings.13.slave b;
        bindings.13.channel 5;
        bindings.14.slave b;
        bindings.14.channel 6;
        bindings.15.slave b;
        bindings.15.channel 7;
}

ctl.all16 {
        type hw;
        card 1;
}

pcm.ttable {
        type route;
        slave.pcm "all16";
        ttable.0.0 1;
        ttable.1.1 1;
        ttable.2.2 1;
        ttable.3.3 1;
        ttable.4.4 1;
        ttable.5.5 1;
        ttable.6.6 1;
        ttable.7.7 1;
        ttable.8.8 1;
        ttable.9.9 1;
        ttable.10.10 1;
        ttable.11.11 1;
        ttable.12.12 1;
        ttable.13.13 1;
        ttable.14.14 1;
        ttable.15.15 1;
}

ctl.ttable {
        type hw;
        card 1;
}

#Combine some channels from both cards
pcm.some {
        type multi;
        slaves.a.pcm analog8_1;
        slaves.a.channels 1;
        slaves.b.pcm analog8_2;
        slaves.b.channels 1;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave b;
        bindings.1.channel 0;
}

ctl.some {
        type hw;
        card 1;
}

I also tried tacking on the "pcm.ttable" sections, but no difference
using it over "pcm.all16". I'm guessing that this is not a hardware
speed issue, but a configuration problem. Can someone help point me in
the right direction, please?

Thanks,
-Bery

-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc. Get Certified Today
Register for a JBoss Training Course. Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Ecasound-list mailing list
Ecasound-list@email-addr-hidden
https://lists.sourceforge.net/lists/listinfo/ecasound-list
Received on Wed Nov 16 16:15:06 2005

This archive was generated by hypermail 2.1.8 : Wed Nov 16 2005 - 16:15:06 EET