[LAU] How to combine microphone audio and music from application to pipe to video conference

Stuart Longland stuartl at longlandclan.id.au
Mon May 18 00:33:42 CEST 2020

On 17/5/20 11:08 pm, Samir wrote:
> Thanks for the detailed response!  I have to admit that I was a bit
> intimidated by your reply as while I'm very comfortable with using the
> command line, I have no experience tinkering within the bowels of ALSA,
> PulseAudio and JACK.

No problems there… I'm learning things as I go as well.  Right now, I'm
contemplating an ALSA plug-in and Android app that would let me use the
headset plugged into my phone as a "wireless" (by WiFi) headset
(streaming signed linear audio over RTP), as I'm not happy with the
available USB wireless headsets (notably, that most restrict capture
sample rates to 16kHz).

> Before I start to unpack your steps, do you have any suggestions for
> resources on how to get started with JACK?  The wiki is a bit
> impenetrable for a complete beginner like me. Seems like I need to do a
> bit more reading before I can tackle your suggestions.

The most important thing would be /etc/security/limits.conf settings so
that your user can run stuff with real-time priority.  If PulseAudio
works, then chances are this is already taken care of.

`qjackctl` isn't too intimidating to get started with.

https://stuartl.longlandclan.id.au/blog/2008/10/31/wireless-h/ shows one
set-up I had years ago for streaming between two sound cards so that I
could use a HF radio via a wireless headset.  A side-benefit of that was
being able to use FreqTweak to tune out un-modulated carriers and other
annoyances of radio communications.

The parameters I mainly play with are:
- input and output devices
- sample rate
- number of channels
- frames/period (powers of two, 1024 or greater normally)
- periods/buffer (usually 3)
- force 16-bit if the underlying hardware doesn't support 32-bit PCM
(often the case in this scenario)

frames/period and periods/buffer will affect latency, so more periods or
more frames, less break-up and XRuns, but more latency.

A lot of people here would be trying to tune that as low as possible as
they'd be doing live performances and such with their rigs.  For someone
like myself who just wants some flexibility in audio routing and isn't
so concerned about perfection, I can be more lenient on latency.

Really, something in between PulseAudio's ease of use and JACK's
flexibility is what I'm after.  If I could make PulseAudio feed signals
between applications the way I can with JACK, I'd use that.  Conversely
if I could make JACK handle hot-plug and multiple audio devices the way
PulseAudio does, I'd be there.

JACK gets close though, so that's where I am right now.

Stuart Longland (aka Redhatter, VK4MSL)

I haven't lost my mind...
  ...it's backed up on a tape somewhere.

Help fund COVID-19 research:

More information about the Linux-audio-user mailing list