rendered paste bodypcm.hda-intel {
type hw
card 0
}
ctl.hda-intel {
type hw
card 0
}
pcm.snd_card {
type hw
card 0 # change to your cards number or name
}
# 6 channel dmix:
pcm.dmix6 {
type dmix
ipc_key 1024
ipc_key_add_uid false # let multiple users share
ipc_perm 0660 # IPC permissions (octal, default 0600)
slave {
pcm snd_card # see below
rate 48000
channels 6
period_time 0
period_size 1024 # try 2048 against skipping
buffer_time 0
buffer_size 5120 # in case of problems reduce this
# in case of skipping, try increasing
}
}
pcm.jackplug {
type plug
slave { pcm "jack" }
}
pcm.jack {
type jack
playback_ports {
0 alsa_pcm:playback_1
1 alsa_pcm:playback_2
}
capture_ports {
0 alsa_pcm:capture_1
1 alsa_pcm:capture_2
}
}
# upmixing:
pcm.ch51dup {
type route
slave.pcm dmix6
slave.channels 6
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
ttable.0.4 0.5
ttable.1.4 0.5
ttable.0.5 0.5
ttable.1.5 0.5
}
pcm.duplex {
type asym
playback.pcm "51to2m"
# playback.pcm "ch51dup" # upmix first
# playback.pcm "dmix6" # just pass to 6 channel dmix
# capture.pcm "dsnoop:0" # doesn't work for me
capture.pcm "snd_card"
}
# change default device:
pcm.!default {
type plug
slave.pcm "duplex"
}
# for aoss
pcm.dsp "duplex"
pcm.dsp1 "duplex"
pcm.51to2m {
# This is like the pcm51to40 from
# http://www.halfgaar.net/surround-sound-in-linux
# but meant to use Dolby Surround (2.0 Matrix encoded)
type route
slave.pcm surround51
slave.channels 6
# 0 - Front Left
ttable.0.0 1
# 1 - Front Right
ttable.1.1 1
# 2 - Rear Left
# TODO: get -90 phase shift
ttable.2.0 0.5
# 3 - Rear Right
# TODO: get +90 phase shift
ttable.3.1 0.5
# 4 - Center
# Center channel routing (routed to front-left and front-right),
# 6dB gaindrop (gain of 0.5) per channel
ttable.4.0 0.5
ttable.4.1 0.5
# 5 - LFE
# LFE channel routing (routed to front-left and front-right),
# 6dB gaindrop (gain of 0.5) per channel
ttable.5.0 0.5
ttable.5.1 0.5
}