[PlanetCCRMA] jackd and two Delta1010 cards

blindman jones erleichda@gmail.com
Mon Jul 3 16:44:20 2006


If you get it working, please post how... this gets asked a lot and I
have yet to hear of a success... Here are a few resources...

Timo shows how you can use one cards crystal to sync the two...
http://quicktoots.linuxaudio.org/toots/el-cheapo/

&

http://alsa.opensrc.org/index.php?page=TwoCardsAsOne

&

http://lau.linuxaudio.org/audio_quality_HOWTO.htm#multi

"Many people attempt to get more than two simultaneous inputs or
outputs by putting more than one cheap soundcard in their system. I
suppose this can be made to work, but I've yet to hear from anyone
who's really pulled it off without big problems. The trouble is that
each soundcard derives its sampling rate from a crystal oscillator
clock. The clocks in the two soundcards will inevitably not be
synchronized. You might think that 44,100 Hz is always exactly 44,100
Hz, but sadly, it's not. Your software doesn't know this - it thinks
44,100 samples from one card represents the same amount of time as
44,100 samples from the other. As a result, the sound from one
soundcard will gradually lag farther and farther behind the sound from
the other soundcard. If there's any sound common to both cards, you
may even get weird phasing effects.

There are only three possible remedies:

   1.

      Use a true multichannel soundcard. See below for information on
cards that work with Linux.
   2.

      Use cards that can be sync'ed to an external clock, and drive
one card with the other card's clock. I do not know what (if any)
cards that support synchronization work with any of the linux drivers.
There is an interesting card in development that has this feature. It
has a website here.
   3.

      Compensate for the discrepancy in software. I don't know of any
existing linux software that does this, nor do I know how it could be
done. The topic does occasionally come up on the linux-audio-dev
mailing list.

If anyone has successfully implemented either of these last two
strategies on a linux box, please write me at slinkp@angelfire.com."

On 7/3/06, Bob Wilkinson <wilkinson.bob@comcast.net> wrote:
> Hopefully someone can help me on this.  I have installed Planet CCRMA from an FC4 installation.  I am using two Delta1010 sound devices, and am trying to get them to act as one big device.
>
> I have searched the web, and found an .asoundrc file (I actually wrote it to /etc/asound.conf) to create the "virtual" card (binding the two cards together).  My asound.conf file looks like this:
>
> pcm.multi_capture {
>         type multi
>         slaves.a.pcm hw:0
>         slaves.a.channels 12
>         slaves.b.pcm hw:1
>         slaves.b.channels 12
>
> # First 8 channels of first soundcard (capture)
>         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
>
> # First 8 channels of second soundcard (capture)
>         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
>
> # S/PDIF section. Uncomment bindings if required.
>
> # S/PDIF first soundcard (capture)
>         #bindings.16.slave a
>         #bindings.16.channel 8
>         #bindings.17.slave a
>         #bindings.17.channel 9
>
> # S/PDIF second soundcard (capture)
>         #bindings.18.slave b
>         #bindings.18.channel 8
>         #bindings.19.slave b
>         #bindings.19.channel 9
> }
>
> ctl.multi_capture {
>         type hw
>         card 0
> }
>
> pcm.multi_playback {
>         type multi
>         slaves.a.pcm hw:0
>         slaves.a.channels 10
>         slaves.b.pcm hw:1
>         slaves.b.channels 10
>
> # First 8 channels of first soundcard (playback)
>         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
>
> # First 8 channels of second soundcard (playback)
>         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
>
> # S/PDIF section. Uncomment bindings if required.
>
> # S/PDIF first soundcard (playback)
>         #bindings.16.slave a
>         #bindings.16.channel 8
>         #bindings.17.slave a
>         #bindings.17.channel 9
>
> # S/PDIF second soundcard (playback)
>         #bindings.18.slave b
>         #bindings.18.channel 8
>         #bindings.19.slave b
>         #bindings.19.channel 9
> }
>
> ctl.multi_playback {
>         type hw
>         card 0
> }
>
> However, when I attempt to run JACK from a command line,
>
> jackd -d alsa -C multi_capture -P multi_playback
>
>  I get the error:
>
> ALSA: mmap-based access is not possible for the capture stream of this audio interface
> ALSA: cannot configure capture channel
>
> I have tried just starting jack for multi_playback only - same error, just replaced with "playback".
>
> Unfortunately, I'm a complete newbie, and now have less than a week before my company expects this thing to be up and running flawlessly.
>
> Can anybody help?  What am I missing?
>
> Thanks in advance!
> Bob Wilkinson
>
> _______________________________________________
> PlanetCCRMA mailing list
> PlanetCCRMA@ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/planetccrma
>


-- 
michael jones * erleichda archiving * usa
shivering is the first step towards your destiny.....