How can i record bluetooth audio in linux? - eviltoast

Hi all,

I have a USB C headset.

I am setting it up, so it’s plugged into my Linux box, so it can listen to music, and make calls, etc from my phone, via bluetooth.

Then I don’t have to keep unplugging my headset and plugging it into my phone.

Also so I can record directly to the Linux machine, that is broadcast from my phone.

But, how can I intercept the Bluetooth audio, and record it?

Thank you.

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 months ago

    You probably have PulseAudio somewhere in your audio chain.

    If you open the pavucontrol program, it’ll show you PulseAudio controls.

    If your mic is enabled, you’ll see it in the “Input Devices” tab. Most audio recording programs will let you choose the source you want to use. One of the devices here will be the “default”, and you can click the checkbox next to it to select that.

    I (very recently) learned from a problematic Sennheiser Momentum 4 that Bluetooth headsets can have two, separate, mutually-exclusive modes, one for high-definition audio, where they act only as headphones, and one where they can act as a combined mic and headphones, but have lower audio quality. I don’t know if that affects your headset as well. However, if it also applies, then your headset might be in “high definition audio” mode, and it won’t have an entry in the “Input Devices” list. Instead, click on the “Configuration” tab, and set the thing to what is for me “HSP/HFP” – this is the lower-quality headset mode. Hopefully then you’ll see an entry in the “Input Devices”.

      • tal@lemmy.today
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        3 months ago

        I don’t know off-the-cuff, but I’m pretty sure that most people in 2024 have PulseAudio in their audio stack. They might be using software that has a different interface that’s being routed into PulseAudio. I have apps using PipeWire, PulseAudio, and ALSA APIs, but it’s passing through PulseAudio.

        I actually do occasionally use JACK, which is the main present-day alternative, but not for general system playback. And if you’re the kind of person who is running JACK because you want to absolutely minimize latency in your audio stack for real-time stuff, I’d give reasonable odds that you aren’t putting Bluetooth headphones in that stack, either.

        Other sound servers that I can think of – YIFF, esd, stuff like that – are all ancient.