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