Audio in 1004
AlternateSC = null: MOST cards function this way, default without a setting Analog, Optical, and Coax are treated the way they always have been, given only the card# to write to /etc/asound.conf and /etc/pluto/xine.conf HDMI is given the card# and the device# to write to the confs. nVidia GT series is automatically detected, and given a special set of values, also using the card and the device number.
AlternateSC = 1: Should only be necessary with old nvidia, or certain ATI/Intel GPUs over HDMI. HDMI is given only the card#. The rest are the same as null.
AlternateSC = 2: should only be necessary for oddballs that do not work under other two schemes, covers newer equipment. All (Analog, Optical, Coax, and HDMI) are given the GT series extended scheme, including both the card# and device#.
AlternateSC = null
Analog, Optical, Coax
</etc/pluto/alsa/virtual_cards.conf>
pcm_slave.spdif_convert48k {
pcm "spdif:0"
rate 48000
}
pcm.spdif_playback {
type plug
slave spdif_convert48k
}
pcm_slave.hdmi_convert48k {
pcm "hdmi:0"
rate 48000
}
pcm.hdmi_playback {
type plug
slave hdmi_convert48k
}
pcm.asym_spdif {
type asym
playback.pcm "spdif_playback"
capture.pcm "plughw:0"
}
pcm.asym_hdmi {
type asym
playback.pcm "hdmi_playback"
capture.pcm "plughw:0"
}
pcm.asym_analog {
type asym
playback.pcm "plug:dmix:0"
capture.pcm "plughw:0"
}
pcm.!default asym_analog
HDMI
</etc/pluto/alsa/virtual_cards.conf>
pcm_slave.spdif_convert48k {
pcm "spdif:0,3"
rate 48000
}
pcm.spdif_playback {
type plug
slave spdif_convert48k
}
pcm_slave.hdmi_convert48k {
pcm "hdmi:0,3"
rate 48000
}
pcm.hdmi_playback {
type plug
slave hdmi_convert48k
}
pcm.asym_spdif {
type asym
playback.pcm "spdif_playback"
capture.pcm "plughw:0,3"
}
pcm.asym_hdmi {
type asym
playback.pcm "hdmi_playback"
capture.pcm "plughw:0,3"
}
pcm.asym_analog {
type asym
playback.pcm "plug:dmix:0,3"
capture.pcm "plughw:0,3"
}
pcm.!default asym_hdmi
nVidia GT series HDMI
</etc/pluto/alsa/virtual_cards.conf>
pcm_slave.spdif_convert48k {
pcm "spdif:1,7"
rate 48000
}
pcm.spdif_playback {
type plug
slave spdif_convert48k
}
pcm_slave.hdmi_convert48k {
pcm "hdmi:1,7"
rate 48000
}
pcm.hdmi_playback {
type plug
slave hdmi_convert48k
}
pcm.asym_spdif {
type asym
playback.pcm "spdif_playback"
capture.pcm "plughw:1,7"
}
pcm.asym_hdmi {
type asym
playback.pcm "hdmi_playback"
capture.pcm "plughw:1,7"
}
pcm.asym_analog {
type asym
playback.pcm "plug:dmix:1,7"
capture.pcm "plughw:1,7"
}
pcm.!hdmi {
@args [ AES0 AES1 AES2 AES3 ]
@args.AES0 {
type integer
# consumer, not-copyright, emphasis-none, mode=0
default 0x04
}
@args.AES1 {
type integer
# original, PCM coder
default 0x00
}
@args.AES2 {
type integer
# source and channel
default 0x00
}
@args.AES3 {
type integer
# fs=48000Hz, clock accuracy=1000ppm
default 0x00
}
type hooks
slave.pcm {
type hw
card 1
device 7
}
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Playback Default"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
{
name "IEC958 Playback Switch"
lock true
preserve true
value true
}
]
}
}
pcm.!default asym_hdmi
Alternate = 1
HDMI
</etc/pluto/alsa/virtual_cards.conf>
pcm_slave.spdif_convert48k {
pcm "spdif:0"
rate 48000
}
pcm.spdif_playback {
type plug
slave spdif_convert48k
}
pcm_slave.hdmi_convert48k {
pcm "hdmi:0"
rate 48000
}
pcm.hdmi_playback {
type plug
slave hdmi_convert48k
}
pcm.asym_spdif {
type asym
playback.pcm "spdif_playback"
capture.pcm "plughw:0"
}
pcm.asym_hdmi {
type asym
playback.pcm "hdmi_playback"
capture.pcm "plughw:0"
}
pcm.asym_analog {
type asym
playback.pcm "plug:dmix:0"
capture.pcm "plughw:0"
}
pcm.!default asym_hdmi
Alternate = 2
Analog, Optical, Coax, and HDMI
</etc/pluto/alsa/virtual_cards.conf>
pcm_slave.spdif_convert48k {
pcm "spdif:0,3"
rate 48000
}
pcm.spdif_playback {
type plug
slave spdif_convert48k
}
pcm_slave.hdmi_convert48k {
pcm "hdmi:0,3"
rate 48000
}
pcm.hdmi_playback {
type plug
slave hdmi_convert48k
}
pcm.asym_spdif {
type asym
playback.pcm "spdif_playback"
capture.pcm "plughw:0,3"
}
pcm.asym_hdmi {
type asym
playback.pcm "hdmi_playback"
capture.pcm "plughw:0,3"
}
pcm.asym_analog {
type asym
playback.pcm "plug:dmix:1,7"
capture.pcm "plughw:0,3"
}
pcm.!hdmi {
@args [ AES0 AES1 AES2 AES3 ]
@args.AES0 {
type integer
# consumer, not-copyright, emphasis-none, mode=0
default 0x04
}
@args.AES1 {
type integer
# original, PCM coder
default 0x00
}
@args.AES2 {
type integer
# source and channel
default 0x00
}
@args.AES3 {
type integer
# fs=48000Hz, clock accuracy=1000ppm
default 0x00
}
type hooks
slave.pcm {
type hw
card 0
device 3
}
hooks.0 {
type ctl_elems
hook_args [
{
name "IEC958 Playback Default"
lock true
preserve true
value [ $AES0 $AES1 $AES2 $AES3 ]
}
{
name "IEC958 Playback Switch"
lock true
preserve true
value true
}
]
}
}
pcm.!default asym_hdmi