More info on a different tangent…
I found this post:
http://forum.kodi.tv/showthread.php?tid=208403
which referred me to this site, which has a sample asound.conf script:
http://ehelion.net/projects/alsa/alsa.html
I modified the asound.conf there to this:
# ~/.asoundrc or /etc/asound.conf
# ALSA configuration file
##### DEVICE NAMES #####
# This configuration file defines four devices for use by the user.
# Those devices are "analog", "mixed-analog", "digital", "mixed-digital", and "xbmc".
# The user may also re-define "default" to be identical to one of the above-named devices
# (i.e. to send all sound output to the digital output unless otherwise specified).
# Use the device names as described below:
# - "analog" outputs to the analog output directly and (at least on software sound cards)
# blocks other audio output. After playback completes, "queued" sounds are output in sequence.
# - "mixed-analog" mixes audio output from multiple programs into the analog output
# (so you can hear beeps, alerts, and other noises while playing back an audio stream)
# - "digital" outputs to the digital output directly. Since most (all?)
# digital outputs expect 48kHz PCM audio, this may not work for some playback
# (i.e. CD's--which are 44.1kHz PCM audio--or 32kHz audio streams from TV recordings, etc.)
# - "mixed-digital" mixes audio output from multiple programs into the digital output.
# - "xbmc" outputs 6channels to digital (hdmi) as well as stereo to analog.
# Set Custom Output Device in XBMC to "xbmc" and Custom Passthrough Device to "digital".
# All other devices created within this file are used only by the configuration
# file itself and should /not/ be used directly. In other words, do not use
# the devices "analog-hw", "dmix-analog", "digital-hw", or "dmix-digital".
##### IMPORTANT #####
# To make this ALSA configuration file work with your sound card, you will need
# to define the appropriate card and device information for the "analog-hw" and
# "digital-hw" devices below. You can find the card and device information
# using "aplay -l".
# Make joint analog/HDMI the default
pcm.!default {
type plug
slave {
pcm "multi"
#rate 48000
}
# digital mixing
ttable.0.0 1 # copy front left to front left digital @ 100%
ttable.1.1 1 # copy front right to front right digital @ 100%
# analog mixing
ttable.0.2 1 # copy front left to front left analog @ 100%
ttable.1.3 1 # copy front right to front right analog @ 100%
}
# Default control device (mixer, etc.) for the card
ctl.!default {
type hw
card 0
}
# Alias for (converted) analog output on the card
# - This is identical to the device named "default"--which always exists and
# refers to hw:0,0 (unless overridden)
# - Therefore, we can specify "hw:0,0", "default", or "analog" to access analog
# output on the card
# - Note that as of ALSA 1.0.9, "software" sound card definitions redefine
# "default" to do mixing, meaning this device is different from "default" and
# allows playback while blocking other sound sources (until playback
# completes).
pcm.analog {
type plug
slave.pcm "analog-hw"
hint {
show on
description "Analog Output - Use analog outputs, converting samples, format, and rate as necessary."
}
}
# Control device (mixer, etc.) for the card
ctl.analog {
type hw
card 0
}
# Alias for (converted) mixed analog output on the card
# - This will accept audio input--regardless of rate--and convert to the rate
# required for the dmix plugin (in this case 48000Hz)
# - Note that as of ALSA 1.0.9, "software" sound card definitions redefine
# "default" to do mixing, meaning this device is identical to "default" for
# "software" sound cards.
pcm.mixed-analog {
type plug
slave.pcm "dmix-analog"
hint {
show on
description "Mixed Analog Output - Use analog outputs, converting samples, format, and rate as necessary. Allows mixing with system sounds."
}
}
# Control device (mixer, etc.) for the card
ctl.mixed-analog {
type hw
card 0
}
# Alias for (converted) digital (HDMI) output on the card
pcm.digital {
type plug
slave.pcm "digital-hw"
hint {
show on
description "Digital Output - Use digital outputs, converting samples, format, and rate as necessary."
}
}
# Control device (mixer, etc.) for the card
ctl.digital {
type hw
card 1
}
# Alias for mixed (converted) digital (HDMI) output on the card
pcm.mixed-digital {
type plug
slave.pcm "dmix-digital"
hint {
show on
description "Mixed Digital Output - Use digital outputs, converting samples, format, and rate as necessary. Allows mixing with system sounds."
}
}
# Control device (mixer, etc.) for the card
ctl.mixed-digital {
type hw
card 1
}
# The following devices are not useful by themselves. They require specific
# rates, channels, and formats. Therefore, you probably do not want to use
# them directly. Instead use one of the devices defined above.
# Alias for analog output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.analog-hw {
type hw
card 2
device 0
}
# Control device (mixer, etc.) for the card
ctl.analog-hw {
type hw
card 2
}
# Alias for digital (HDMI) output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.digital-hw {
type hw
card 1
device 0
}
# Control device (mixer, etc.) for the card
ctl.digital-hw {
type hw
card 1
}
# Direct software mixing plugin for analog output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.dmix-analog {
type dmix
ipc_key 1234
slave {
pcm "analog-hw"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
}
# Control device (mixer, etc.) for the card
ctl.dmix-analog {
type hw
card 0
}
# Direct software mixing plugin for digital (S/PDIF) output on the card
# Do not use this directly--it requires specific rate, channels, and format
pcm.dmix-digital {
type dmix
ipc_key 1235
slave {
pcm "digital-hw"
period_time 0
period_size 1024
buffer_size 4096
rate 48000
}
}
# Control device (mixer, etc.) for the card
ctl.dmix-digital {
type hw
card 1
}
# XBMC specific plug outputting to both analog (stereo) and hdmi (5.1)
pcm.xbmc {
type plug
slave.pcm "8channel_expander"
hint {
show on
description "Multichannel output to both analog and hdmi - for use with XBMC"
}
}
ctl.xbmc {
type hw
card 0
}
pcm.multi {
type multi
slaves.a.pcm "digital-hw"
slaves.a.channels 2
slaves.b.pcm "analog-hw"
slaves.b.channels 2
# digital (hdmi) bindings
bindings.0.slave a
bindings.0.channel 0 # bind alsa channel 0 to front left
bindings.1.slave a
bindings.1.channel 1 # bind alsa channel 1 to front right
# analog bindings
bindings.2.slave b
bindings.2.channel 0 # bind alsa channel 2 to front left
bindings.3.slave b
bindings.3.channel 1 # bind alsa channel 3 to front right
}
ctl.multi {
type hw
card 0
}
pcm.8channel_expander {
type route
slave.pcm "multi"
slave.channels 4
# syntax for ttable is "ttable.inputchannel.outputchannel volume"
# digital mixing
ttable.0.0 1 # copy front left to front left digital @ 100%
ttable.1.1 1 # copy front right to front right digital @ 100%
# analog mixing
ttable.0.2 1 # copy front left to front left analog @ 100%
ttable.1.3 1 # copy front right to front right analog @ 100%
}
ctl.8channel_expander {
type hw
card 0
}
It works - I get audio output through both channels but the OSMC interface is brutally slow so something’s still wrong.
I also found a reference to the Dual Audio project on the Kodi forums:
http://forum.kodi.tv/showthread.php?tid=208403
I suspect that this is what Sam was referring to when he mentioned the possibility of adding dual audio support.