Difference between revisions of "Audio in 1004"

From LinuxMCE
Jump to: navigation, search
(xine.conf)
 
(39 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Installation Tutorials| Installation Tutorials]]
+
[[Category:Installation Tutorials]]
 +
[[Category:Hardware]]
 
{| align="right"
 
{| align="right"
 
   | __TOC__
 
   | __TOC__
 
   |}
 
   |}
Alternate sound configurations can be set in /etc/pluto.conf. MOST sound cards should not require this.
 
  
 +
Alternate sound configurations can be set in /etc/pluto.conf. MOST sound cards should work out of the box, and do not require this parameter. This parameter may be written by [http://svn.linuxmce.org/trac.cgi/browser/branches/LinuxMCE-1004/src/BootScripts/nvidia-install.sh /usr/pluto/bin/nvidia-install.sh] for various GT chipsets. This can be done at avwizard on the [http://wiki.linuxmce.org/index.php/AVWizard_Step_by_Step#Audio_Output_Connector Audio Selector step 5], or at any time by running [http://svn.linuxmce.org/trac.cgi/browser/branches/LinuxMCE-1004/src/BootScripts/SetupAudioVideo.sh /usr/pluto/bin/SetupAudioVideo.sh] '''NOTE: Audio should NOT be actively playing when running SetupAudioVideo.sh.'''
  
'''AlternateSC = null''' : MOST cards function this way, default without a setting.
+
Auto-detection is attempted when specific packages are installed, or if the pluto.conf "AlternateSC" setting is null or = 0. In most cases, this value will never exist.
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#Analog.2C_Optical.2C_Coax, 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
+
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#HDMI HDMI] is given the card# and the device# to write to the confs.
+
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#nVidia_GT_series_HDMI 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.
+
Below are example /etc/asound.conf files generated by these configurations. /etc/pluto/xine.conf files borrow the card# and device# (if any) in the same way as the asound.conf
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#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.
+
'''AlternateSC = null''' : Most cards function without this parameter, this is the default state.
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#Analog.2C_Optical.2C_Coax.2C_and_HDMI All (Analog, Optical, Coax, and HDMI)] are given the GT series extended scheme, including both the card# and device#.
+
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#Analog.2C_Optical.2C_Coax.2C_HDMI Analog, Optical, Coax and HDMI] are treated the way they always have been, given only the card# to write to the confs.
 +
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#nVidia_GT_series_HDMI nVidia GT series HDMI] is automatically detected, and given a special set of values, also using the card# and the device#.
  
  
==AlternateSC = null==
+
'''AlternateSC = 1''' : Should only be necessary for analog multi-channel.
===Analog, Optical, Coax===
+
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#AlternateSC_.3D_1 Analog Multi-channel]  are given the card# and the device# to write to the confs.
  
</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===
+
'''AlternateSC = 2''' : Should only be necessary for oddballs that do not work under other two schemes, covers older equipment. This additionally changes the [http://wiki.linuxmce.org/index.php/Audio_in_1004#xine.conf xine.conf] scheme.
 +
* [http://wiki.linuxmce.org/index.php/Audio_in_1004#AlternateSC_.3D_2 Analog, Optical, Coax, HDMI]are given an extended scheme, including both the card# and device#.
 +
 
 +
 
 +
==AlternateSC = 0 or null==
 +
===Analog, Optical, Coax, HDMI===
 +
 
 
  </etc/pluto/alsa/virtual_cards.conf>
 
  </etc/pluto/alsa/virtual_cards.conf>
 
   
 
   
  pcm_slave.spdif_convert48k {
+
  pcm_slave.analog_convert48k {
pcm "spdif:0,3"
+
        pcm "analog_8:0,0"
rate 48000
+
 
  }
 
  }
 
   
 
   
  pcm.spdif_playback {
+
  pcm.analog_playback {
type plug
+
        type plug
slave spdif_convert48k
+
        slave analog_convert48k
 
  }
 
  }
 
   
 
   
  pcm_slave.hdmi_convert48k {
+
  !default {
pcm "hdmi:0,3"
+
        type asym
rate 48000
+
        playback.pcm "analog_playback:0,0"
}
+
        capture.pcm "plughw:0,0"
+
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===
+
==AlternateSC = 1==
 +
===Analog Multi-channel, Optical, Coax, and HDMI===
 
  </etc/pluto/alsa/virtual_cards.conf>
 
  </etc/pluto/alsa/virtual_cards.conf>
 
   
 
   
  pcm_slave.spdif_convert48k {
+
  pcm.analog_6 {
pcm "spdif:1,7"
+
        slave.pcm surround51
rate 48000
+
        slave.rate 48000
 +
        slave.channels 6
 +
        type route
 +
        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.spdif_playback {
+
  pcm.analog_8 {
type plug
+
        slave.pcm multi
slave spdif_convert48k
+
        slave.rate 48000
 +
        slave.channels 8
 +
        type route
 +
        ttable.0.0 1.0
 +
        ttable.1.1 1.0
 +
        ttable.2.2 1.0
 +
        ttable.3.3 1.0
 +
        ttable.4.4 1.0
 +
        ttable.5.5 1.0
 +
        ttable.0.6 1.0
 +
        ttable.1.7 1.0
 +
        ttable.2.6 0.7
 +
        ttable.3.7 0.7
 +
        ttable.4.6 0.7
 +
        ttable.4.7 0.7
 +
        ttable.5.6 0.5
 +
        ttable.5.7 0.5
 
  }
 
  }
 
   
 
   
  pcm_slave.hdmi_convert48k {
+
  pcm_slave.analog_convert48k {
pcm "hdmi:1,7"
+
        pcm "analog_8:0,0"
rate 48000
+
 
  }
 
  }
 
   
 
   
  pcm.hdmi_playback {
+
  pcm.analog_playback {
type plug
+
        type plug
slave hdmi_convert48k
+
        slave analog_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 {
+
  !default {
@args [ AES0 AES1 AES2 AES3 ]
+
        type asym
@args.AES0 {
+
        playback.pcm "analog_playback:0,0"
type integer
+
        capture.pcm "plughw:0,0"
# 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
 
  
  
 
+
==AlternateSC = 2==
==Alternate = 1==
+
===Analog, Optical, Coax, and HDMI===
===HDMI===
+
 
  </etc/pluto/alsa/virtual_cards.conf>
 
  </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_slave.hdmi_convert48k {
pcm "hdmi:0"
+
        pcm "hw:0"
rate 48000
+
        rate 48000
 
  }
 
  }
 
   
 
   
 
  pcm.hdmi_playback {
 
  pcm.hdmi_playback {
type plug
+
        type plug
slave hdmi_convert48k
+
        slave hdmi_convert48k
 
  }
 
  }
 
   
 
   
  pcm.asym_spdif {
+
  !default {
type asym
+
        type asym
playback.pcm "spdif_playback"
+
        playback.pcm "hdmi_playback"
capture.pcm "plughw:0"
+
        capture.pcm "hw: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
 
  
 +
==xine.conf==
 +
In conditions of null, 0 values of AlternateSC for multi-channel audio, the last 4 lines of /etc/pluto/xine.conf looks like this
 +
audio.device.alsa_front_device:plughw:0,3
 +
audio.device.alsa_default_device:plughw:0,3
 +
audio.output.speaker_arrangement:Pass Through
 +
audio.device.alsa_passthrough_device:plughw:0,3
  
 +
In the case AlternateSC = 1, some sound cards cease functioning when the Pass Through arrangement is specified, instead of just the passthrough device.
 +
audio.device.alsa_front_device:plughw:0,3
 +
audio.device.alsa_default_device:plughw:0,3
 +
audio.device.alsa_passthrough_device:plughw:0,3
  
==Alternate = 2==
+
All stereo analog appears like so:
===Analog, Optical, Coax, and HDMI===
+
  audio.device.alsa_front_device:plughw:0,0
  </etc/pluto/alsa/virtual_cards.conf>
+
  audio.device.alsa_default_device:plughw:0,0
+
  audio.output.speaker_arrangement:Stereo 2.0
pcm_slave.spdif_convert48k {
+
 
pcm "spdif:0,3"
+
Except in the case of 2, when it appears like so:
rate 48000
+
  audio.device.alsa_front_device:hw:0
  }
+
  audio.device.alsa_default_device:hw:0
+
  audio.output.speaker_arrangement:Stereo 2.0
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
+

Latest revision as of 18:37, 10 February 2013

Alternate sound configurations can be set in /etc/pluto.conf. MOST sound cards should work out of the box, and do not require this parameter. This parameter may be written by /usr/pluto/bin/nvidia-install.sh for various GT chipsets. This can be done at avwizard on the Audio Selector step 5, or at any time by running /usr/pluto/bin/SetupAudioVideo.sh NOTE: Audio should NOT be actively playing when running SetupAudioVideo.sh.

Auto-detection is attempted when specific packages are installed, or if the pluto.conf "AlternateSC" setting is null or = 0. In most cases, this value will never exist.

Below are example /etc/asound.conf files generated by these configurations. /etc/pluto/xine.conf files borrow the card# and device# (if any) in the same way as the asound.conf

AlternateSC = null : Most cards function without this parameter, this is the default state.


AlternateSC = 1 : Should only be necessary for analog multi-channel.


AlternateSC = 2 : Should only be necessary for oddballs that do not work under other two schemes, covers older equipment. This additionally changes the xine.conf scheme.


AlternateSC = 0 or null

Analog, Optical, Coax, HDMI

</etc/pluto/alsa/virtual_cards.conf>

pcm_slave.analog_convert48k {
       pcm "analog_8:0,0"
}

pcm.analog_playback {
       type plug
       slave analog_convert48k
}

!default {
       type asym
       playback.pcm "analog_playback:0,0"
       capture.pcm "plughw:0,0"
}

AlternateSC = 1

Analog Multi-channel, Optical, Coax, and HDMI

</etc/pluto/alsa/virtual_cards.conf>

pcm.analog_6 {
       slave.pcm surround51
       slave.rate 48000
       slave.channels 6
       type route
       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.analog_8 {
       slave.pcm multi
       slave.rate 48000
       slave.channels 8
       type route
       ttable.0.0 1.0
       ttable.1.1 1.0
       ttable.2.2 1.0
       ttable.3.3 1.0
       ttable.4.4 1.0
       ttable.5.5 1.0
       ttable.0.6 1.0
       ttable.1.7 1.0
       ttable.2.6 0.7
       ttable.3.7 0.7
       ttable.4.6 0.7
       ttable.4.7 0.7
       ttable.5.6 0.5
       ttable.5.7 0.5
}

pcm_slave.analog_convert48k {
       pcm "analog_8:0,0"
}

pcm.analog_playback {
       type plug
       slave analog_convert48k
}

!default {
       type asym
       playback.pcm "analog_playback:0,0"
       capture.pcm "plughw:0,0"
}


AlternateSC = 2

Analog, Optical, Coax, and HDMI

</etc/pluto/alsa/virtual_cards.conf>

pcm_slave.hdmi_convert48k {
       pcm "hw:0"
       rate 48000
}

pcm.hdmi_playback {
       type plug
       slave hdmi_convert48k
}

!default {
       type asym
       playback.pcm "hdmi_playback"
       capture.pcm "hw:0"
}

xine.conf

In conditions of null, 0 values of AlternateSC for multi-channel audio, the last 4 lines of /etc/pluto/xine.conf looks like this

audio.device.alsa_front_device:plughw:0,3
audio.device.alsa_default_device:plughw:0,3
audio.output.speaker_arrangement:Pass Through
audio.device.alsa_passthrough_device:plughw:0,3

In the case AlternateSC = 1, some sound cards cease functioning when the Pass Through arrangement is specified, instead of just the passthrough device.

audio.device.alsa_front_device:plughw:0,3
audio.device.alsa_default_device:plughw:0,3
audio.device.alsa_passthrough_device:plughw:0,3

All stereo analog appears like so:

audio.device.alsa_front_device:plughw:0,0
audio.device.alsa_default_device:plughw:0,0
audio.output.speaker_arrangement:Stereo 2.0

Except in the case of 2, when it appears like so:

audio.device.alsa_front_device:hw:0
audio.device.alsa_default_device:hw:0
audio.output.speaker_arrangement:Stereo 2.0