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