IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Is it possible to run two soundcards for surround sound ?
Christof999
post Jul 2 2007, 22:04
Post #1





Group: Members
Posts: 14
Joined: 15-September 06
Member No.: 35227



Hi all,

I have a slightly odd question.

This is the setup I am looking to have.

For the two front/Stereo channels

An M-audio 2696, two analog outputs connected to my Pioneer VSX-816, Which has two preouts which will connect to my Cambridge stereo amp.

For the rear and centre channels

Some little soundcard or onboard sound, with the rear, and centre connected directly to the pioneer for out put.

Will this work software wise ?
Go to the top of the page
+Quote Post
AndyH-ha
post Jul 2 2007, 22:49
Post #2





Group: Members
Posts: 2207
Joined: 31-August 05
Member No.: 24222



The majority of surround sound source files are probably not compatible with such an approach. They exist as a single file and need to be decoded and passed out to the appropriate output channels. This intermediate function is done in a soundcard that has surround sound processing or in an AV receiver. I don't know about software player solutions. You would have to find something that produces multi-track output for the single surround file input and lets you assign the tracks to the outputs of your choice.

Unless you employ some single clock source, the soundcards will not stay in synch with each other. Within a couple minutes or so, maybe sooner, the front channels will be at one place in the composition while the rear channels will be at another, either lagging behind or running ahead by a noticeable amount.

There are provisions to synch many professional soundcards to a single clock. The more advanced employ a central clock and pipe it to all involved hardware (e.g. wordclock), others use the clock from one soundcard and disable the others. The Audiophile 2496 does this via S/PDIF; you can run up to four of them as a single 8 channel device.
Go to the top of the page
+Quote Post
CyberFoxx
post Jul 2 2007, 23:08
Post #3





Group: Members
Posts: 62
Joined: 15-August 02
Member No.: 3062



What OS are you running? If Linux, you can do this with ALSA and a properly setup .asoundrc config file. I myself have played with a setup of a SBLive 5.1 (Just using the two front channels) and my onboard sound (Front channels yet again) to get a 4 channel setup. I just tried it to see if it worked, and it worked quite well too.

I have no idea how you'd do this under Windows though...


--------------------
"It's the panties fault! The panties made me a pervert!"
Go to the top of the page
+Quote Post
Christof999
post Jul 2 2007, 23:20
Post #4





Group: Members
Posts: 14
Joined: 15-September 06
Member No.: 35227



QUOTE (CyberFoxx @ Jul 2 2007, 14:08) *
What OS are you running? If Linux, you can do this with ALSA and a properly setup .asoundrc config file. I myself have played with a setup of a SBLive 5.1 (Just using the two front channels) and my onboard sound (Front channels yet again) to get a 4 channel setup. I just tried it to see if it worked, and it worked quite well too.

I have no idea how you'd do this under Windows though...


I am indeed running Linux.

Can you elaborate a little more on this ? Perhaps posting .asoundrc config file ?

Thanks
Christopher
Go to the top of the page
+Quote Post
j7n
post Jul 2 2007, 23:36
Post #5





Group: Members
Posts: 813
Joined: 26-April 04
Member No.: 13720



<deleted>

This post has been edited by j7n: Jul 2 2007, 23:47
Go to the top of the page
+Quote Post
CyberFoxx
post Jul 3 2007, 00:16
Post #6





Group: Members
Posts: 62
Joined: 15-August 02
Member No.: 3062



QUOTE (Christof999 @ Jul 2 2007, 17:20) *
Can you elaborate a little more on this ? Perhaps posting .asoundrc config file ?


Actually, when I tried it, I just copied the "Virtual multi channel devices" example from that page I linked to, edited a couple values, and it worked off the bat for me. Then again, I was lucky that my SBLive's front 2 channels are setup as hw:0,0 and my on-board's front 2 channels are hw:2,0. To find out what card is what number, just check out the listings in /proc/asound.

CODE
dr-xr-xr-x   9 root root 0 2007-07-02 18:42 card0
dr-xr-xr-x   3 root root 0 2007-07-02 18:42 card1
dr-xr-xr-x   7 root root 0 2007-07-02 18:42 card2
-r--r--r--   1 root root 0 2007-07-02 18:42 cards
-r--r--r--   1 root root 0 2007-07-02 18:42 devices
-r--r--r--   1 root root 0 2007-07-02 18:42 hwdep
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 Live -> card0
-r--r--r--   1 root root 0 2007-07-02 18:42 modules
dr-xr-xr-x   2 root root 0 2007-07-02 18:42 oss
-r--r--r--   1 root root 0 2007-07-02 18:42 pcm
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 SAA7134 -> card1
dr-xr-xr-x   2 root root 0 2007-07-02 18:42 seq
-r--r--r--   1 root root 0 2007-07-02 18:42 timers
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 V8237 -> card2
-r--r--r--   1 root root 0 2007-07-02 18:42 version


In my setup, I have three sound devices, my SBLive (Live), my TV card's ALSA device (SAA7134) and my onboard (V8237). As you can see, ALSA has kindly provided symlinks based on the common name for that device, to the number that it has assigned to that device. Based on those symlinks, my SBLive is Card 0 (AKA, hw:0,0), and my onboard is Card 2 (hw:2,0).

Here's how my .asoundrc looked when I edited it:
CODE
# create a virtual four-channel device with two sound devices:
# This is in fact two interleaved stereo streams in
# different memory locations, so JACK will complain that it
# cannot get mmap-based access. see below.

pcm.multi {
        type multi;
        slaves.a.pcm "hw:0,0";
        slaves.a.channels 2;
        slaves.b.pcm "hw:2,0";
        slaves.b.channels 2;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
}

# JACK will be unhappy if there is no mixer to talk to, so we set
# this to card 0. This could be any device but 0 is easy.

ctl.multi {
        type hw;
        card 0;
}


Now, this is how it works for a 4 channel setup using the front's of two soundcards, and so far I've used the "hw" devices. But ALSA provides handy aliases for the channels on devices, like front, rear, center_lfe, etc. You can find out what handy aliases ALSA provides on your setup by using "aplay -L". That way, instead of using "hw:0,0" or whatever, I can use "front:CARD=LIVE" and "front:CARD=V8237". (Oh, and you can leave out that "DEV=0" part, if ALSA adds it to the alias. I noticed that it does for my SBLive, but not for my onboard. I've never added it in, and it still works as expected.)

For instance, if I wanted to do a 6 channel setup using the front and center/lfe of my Live, meanwhile using the front channel of my onboard for rears, I'd setup the .asoundrc as:
CODE
pcm.multi {
        type multi;
        slaves.a.pcm "front:CARD=Live";
        slaves.a.channels 2;
        slaves.b.pcm "front:CARD=V8237";
        slaves.b.channels 2;
        slaves.c.pcm "center_lfe:CARD=Live";
        slaves.c.channels 2;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
        bindings.4.slave c;
        bindings.4.channel 0;
        bindings.5.slave c;
        bindings.5.channel 1;
}

ctl.multi {
        type hw;
        card 0;
}


I admit, that for me, such setups are pretty silly, what with having a real 5.1 card and 5.1 speaker setup. But I can see the needs for such a setup using cheap, but decent, 2 channel soundcards. In fact, this is what I had to do before I got my SBLive.

ALSA is a wonderful setup, you can do alot of "magic" with the .asoundrc file. But the best way to learn what you can do, is by reading the docs, and messing with it yourself.

Hope I've helped you out. happy.gif


--------------------
"It's the panties fault! The panties made me a pervert!"
Go to the top of the page
+Quote Post
Christof999
post Jul 3 2007, 01:15
Post #7





Group: Members
Posts: 14
Joined: 15-September 06
Member No.: 35227



QUOTE (CyberFoxx @ Jul 2 2007, 15:16) *
QUOTE (Christof999 @ Jul 2 2007, 17:20) *
Can you elaborate a little more on this ? Perhaps posting .asoundrc config file ?


Actually, when I tried it, I just copied the "Virtual multi channel devices" example from that page I linked to, edited a couple values, and it worked off the bat for me. Then again, I was lucky that my SBLive's front 2 channels are setup as hw:0,0 and my on-board's front 2 channels are hw:2,0. To find out what card is what number, just check out the listings in /proc/asound.

CODE
dr-xr-xr-x   9 root root 0 2007-07-02 18:42 card0
dr-xr-xr-x   3 root root 0 2007-07-02 18:42 card1
dr-xr-xr-x   7 root root 0 2007-07-02 18:42 card2
-r--r--r--   1 root root 0 2007-07-02 18:42 cards
-r--r--r--   1 root root 0 2007-07-02 18:42 devices
-r--r--r--   1 root root 0 2007-07-02 18:42 hwdep
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 Live -> card0
-r--r--r--   1 root root 0 2007-07-02 18:42 modules
dr-xr-xr-x   2 root root 0 2007-07-02 18:42 oss
-r--r--r--   1 root root 0 2007-07-02 18:42 pcm
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 SAA7134 -> card1
dr-xr-xr-x   2 root root 0 2007-07-02 18:42 seq
-r--r--r--   1 root root 0 2007-07-02 18:42 timers
lrwxrwxrwx   1 root root 5 2007-07-02 18:42 V8237 -> card2
-r--r--r--   1 root root 0 2007-07-02 18:42 version


In my setup, I have three sound devices, my SBLive (Live), my TV card's ALSA device (SAA7134) and my onboard (V8237). As you can see, ALSA has kindly provided symlinks based on the common name for that device, to the number that it has assigned to that device. Based on those symlinks, my SBLive is Card 0 (AKA, hw:0,0), and my onboard is Card 2 (hw:2,0).

Here's how my .asoundrc looked when I edited it:
CODE
# create a virtual four-channel device with two sound devices:
# This is in fact two interleaved stereo streams in
# different memory locations, so JACK will complain that it
# cannot get mmap-based access. see below.

pcm.multi {
        type multi;
        slaves.a.pcm "hw:0,0";
        slaves.a.channels 2;
        slaves.b.pcm "hw:2,0";
        slaves.b.channels 2;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
}

# JACK will be unhappy if there is no mixer to talk to, so we set
# this to card 0. This could be any device but 0 is easy.

ctl.multi {
        type hw;
        card 0;
}


Now, this is how it works for a 4 channel setup using the front's of two soundcards, and so far I've used the "hw" devices. But ALSA provides handy aliases for the channels on devices, like front, rear, center_lfe, etc. You can find out what handy aliases ALSA provides on your setup by using "aplay -L". That way, instead of using "hw:0,0" or whatever, I can use "front:CARD=LIVE" and "front:CARD=V8237". (Oh, and you can leave out that "DEV=0" part, if ALSA adds it to the alias. I noticed that it does for my SBLive, but not for my onboard. I've never added it in, and it still works as expected.)

For instance, if I wanted to do a 6 channel setup using the front and center/lfe of my Live, meanwhile using the front channel of my onboard for rears, I'd setup the .asoundrc as:
CODE
pcm.multi {
        type multi;
        slaves.a.pcm "front:CARD=Live";
        slaves.a.channels 2;
        slaves.b.pcm "front:CARD=V8237";
        slaves.b.channels 2;
        slaves.c.pcm "center_lfe:CARD=Live";
        slaves.c.channels 2;
        bindings.0.slave a;
        bindings.0.channel 0;
        bindings.1.slave a;
        bindings.1.channel 1;
        bindings.2.slave b;
        bindings.2.channel 0;
        bindings.3.slave b;
        bindings.3.channel 1;
        bindings.4.slave c;
        bindings.4.channel 0;
        bindings.5.slave c;
        bindings.5.channel 1;
}

ctl.multi {
        type hw;
        card 0;
}


I admit, that for me, such setups are pretty silly, what with having a real 5.1 card and 5.1 speaker setup. But I can see the needs for such a setup using cheap, but decent, 2 channel soundcards. In fact, this is what I had to do before I got my SBLive.

ALSA is a wonderful setup, you can do alot of "magic" with the .asoundrc file. But the best way to learn what you can do, is by reading the docs, and messing with it yourself.

Hope I've helped you out. happy.gif


Thanks youve helped me alot!

One more question. Is it possible to occasionally use my two rear speakers, as regular stereo speakers ? My two regular front speakers are heavy duty, and I don't like wearing them out for just basic internet sounds, or background noise. I like to use them for watching a film or stereo listening sessions.

Thanks again
Chris
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 21st September 2014 - 14:42