Audio in 1004
From LinuxMCE
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 HDMI 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