2010-07-20, 15:04
Although I'm eager to see Chris configuration,
I read this wiki http://alsa.opensrc.org/index.php/.asoundrc
And though about this, although not tested as I am at work ;-):
quick recall, the intent is to get all sound sources:
- downstream to stereo though HDMI
- Multichannel through SPDIF
The big difference with all the other configurations I've seen around is here:
and relies on two different downmixes.
The TV HDMI downmix:
And the SPDIF downmix:
Thoughts?
Chris, I'm still interested in your solution though...
I read this wiki http://alsa.opensrc.org/index.php/.asoundrc
And though about this, although not tested as I am at work ;-):
quick recall, the intent is to get all sound sources:
- downstream to stereo though HDMI
- Multichannel through SPDIF
Code:
pcm.!default plug:both
ctl.!default {
type hw
card 0
}
pcm.both {
type route;
slave.pcm {
type multi;
slaves.a.pcm "tv";
slaves.b.pcm "optical";
slaves.a.channels 2;
slaves.b.channels 6;
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 b;
bindings.4.channel 2;
bindings.5.slave b;
bindings.5.channel 3;
bindings.6.slave b;
bindings.6.channel 4;
bindings.7.slave b;
bindings.7.channel 5;
}
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1; # front left
ttable.1.3 1; # front right
ttable.0.4 1; # copy front left to rear left
ttable.1.5 1; # copy front left to rear left
# mix front left/right to subwoofer and center
ttable.0.6 0.5;
ttable.1.6 0.5;
ttable.0.7 0.5;
ttable.1.7 0.5;
}
ctl.both {
type hw;
card 0;
}
pcm.optical {
type dmix
ipc_key 1024
slave {
pcm "optical"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 65536
buffer_time 0
periods 128
rate 48000
channels 6
}
bindings {
0 0
1 1
2 2
3 3
4 4
5 5
}
}
pcm.tv {
type dmix
ipc_key 2048
slave {
pcm "tv"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 65536
buffer_time 0
periods 128
rate 48000
channels 2
}
bindings {
0 0
1 1
}
}
ctl.optical {
type hw
card 0
}
ctl.tv {
type hw
card 0
}
pcm.optical {
type hw
card 0
device 1
}
pcm.tv {
type hw
card 0
device 3
}
The big difference with all the other configurations I've seen around is here:
Code:
slave.pcm {
type multi;
slaves.a.pcm "tv";
slaves.b.pcm "optical";
slaves.a.channels 2;
slaves.b.channels 6;
and relies on two different downmixes.
The TV HDMI downmix:
Code:
pcm.tv {
type dmix
ipc_key 2048
slave {
pcm "tv"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 65536
buffer_time 0
periods 128
rate 48000
channels 2
}
bindings {
0 0
1 1
}
}
And the SPDIF downmix:
Code:
pcm.optical {
type dmix
ipc_key 1024
slave {
pcm "optical"
period_time 0
period_size 2048
# buffer_size 8192
buffer_size 65536
buffer_time 0
periods 128
rate 48000
channels 6
}
bindings {
0 0
1 1
2 2
3 3
4 4
5 5
}
}
Thoughts?
Chris, I'm still interested in your solution though...