Using ALSA On Linux
Output to two sound cards
As given here:
pcm.quad {
type multi
slaves.a.pcm "dmix:2,0"
slaves.a.channels 2
slaves.b.pcm "dmix:3,0"
slaves.b.channels 2
bindings.0 { slave a; channel 0; }
bindings.1 { slave a; channel 1; }
bindings.2 { slave b; channel 0; }
bindings.3 { slave b; channel 1; }
}
pcm.stereo2quad {
type route
slave.pcm "quad"
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
}
pcm.!default {
type asym
playback.pcm "plug:stereo2quad"
capture.pcm "plug:dsnoop:CA0106"
}
Delaying audio output
I couldn't yet figure out how to do this. Best I can tell is this is accomplished by adjusting the buffer size.
References:
- https://www.alsa-project.org/wiki/FramesPeriods
- https://stackoverflow.com/questions/24040672/the-meaning-of-period-in-alsa
- https://www.alsa-project.org/wiki/Test_latency.c
I gather some of the latency measurements look at the delay between captured audio entering the system and the same audio exiting the system via playback, I need to measure the decoding time in the receiver which is output to input latency rather than input to output.
General configuration
- https://alsa.opensrc.org/Asoundrc
- https://www.alsa-project.org/wiki/Asoundrc
- https://alsa.opensrc.org/Dmix