Second usb dac to be used a center channel

I currently use a usb dac/amp to drive stereo speakers. I’d like to have a center channel (real not virtual), and a potentially easy way to add this is with a second usb dac/amp to drive the center speaker.
This is probably a KODI question, but can OSMC take advantage of a second usb dac/amplifier? Could this be used to have a real center speaker?

You could do this with ALSA. You need to create a pcm in ~/.asoundrc with a multi plug-in with 3 channels and your USB DACs as two slaves and route the channels accordingly.

You need to be careful about matching samplerates and signal formats.

I’ve looked into this. There could be a problem that I suspect your USB DACs are relatively high-end. As such, they likely work in asynchronous mode, the clocks in each of them determine the rate at which audio is received from the USB interface. That means there’s no way for them to synchronise continuously with video which could cause lip-sync issues over time, or occasional glitches, but more importantly here, they can’t synchronise with each other. I don’t have any USB audio devices that work in asynchronous mode - maybe yours could be switched to synchronous if you get problems.

The next issue is that Kodi needs to think it’s driving a 6-channel audio device to believe it has a front-centre channel available. Its default channel-map is FL, FR, RL, RR, FC, LFE. I put this device definition in ~/.asoundrc and it worked with some occasional glitches:

pcm.threepoint0 {
	type route
	slave.pcm {
		type multi
		slaves {
			a { pcm "front:Audio,DEV=0" channels 2 }
			b { pcm "null" channels 2 } # RL,RR
			c { pcm "front:Audio_1,DEV=0" channels 2 }
		bindings [
			{ slave a channel 0 }
			{ slave a channel 1 }
			{ slave b channel 0 }
			{ slave b channel 1 }
			{ slave c channel 0 }
			{ slave c channel 1 }
	ttable {
		0.0 1
		1.1 1
		2.2 0
		3.3 0
		4.4 1
		5.5 0 # change this to 5.5 1 to get the LFE channel
	chmap [ "FL" "FR" "RL" "RR" "FC" "LFE" ]

In the above “Audio” and “Audio_1” are the names of two USB DACs. You need to substitute what you see in the output of aplay -L for your two DACs.

After adding that to ~/.asoundrc, restart Kodi and set Audio channels to 3.0.

For some reason, you won’t see “threepoint0” show up in Kodi’s Audio settings, just the name of the first DAC with empty brackets ().


Async dacs are still slaved to the usb clock/data rate as part of their isochronous operation which it works in tandem with, so it should be fine.

1 Like

Thanks for this.
I will try it and see if it helps with the sound quality.

I may be wrong but I don’t think Kodi will mix stereo into a FC channel. You will only get FC when playing multi-channel streams (eg 5.1).