[PlanetCCRMA] jackd and two Delta1010 cards

kelly khirai@ongaku.isa-geek.net
Tue Jul 4 12:06:04 2006


i got the impression from the controls in envy24control that you could 
sync the cards from s/pdif in the hardware settings tab. i have one 
1010lt and have nothing to sync to though to try this.
k.

blindman jones wrote:
> 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
>>
> 
>