[alsa-devel] Possibility of routing at the kernel level

Mark Farrugia mark.farrugia at fiberdyne.com.au
Fri Aug 24 08:27:01 CEST 2018


Hi all,

I am currently using the ALSA loopback driver to create a "virtual"
sound card to abstract underlying real sound cards.  I capture from
the loopback in user-space, and then subsequently playback to a real
sound card.

The issue with this is that there is a significant latency introduced
(~100ms) due to the number of transitions of the stream from user to
kernel space. I am seeking a way to avoid this.

My question is this: is there any way of routing PCM substreams at the
kernel level, so that we can avoid the need to pipe audio back up to
user-space with the loopback capturer?  If there is no current
solution that would achieve this, I would proposition to design and
implement a system that uses a top-level ALSA driver, which then
routes dynamically to one or many subscribed lower-level "audio path"
drivers.  The system would also have the option to loopback upon
itself.

Does anyone see any reason that I couldn't (or shouldn't) attempt such
a solution? All feedback is welcome.

Regards,
Mark


More information about the Alsa-devel mailing list