Monitor devices no longer shown as recording devices

I am using Debian bookworm and Audacity 3.2.4 from Debian’s repo, but this is also happening with 3.2.3 and 3.3.0-alpha-20230203 (built from sources).

Until recently, using Audacity with Jack (actually pipewire-jack) worked perfectly. Listing the “Recording Devices” always showed my two sound cards and two additional “* Monitor” devices that allow directly recording each sound card’s mixed output.

These Monitor devices are no longer shown in Audacity, only the real input devices are shown, ie: Only my “M2” device shows but not the additional “M2 Monitor” device I used to have too.

I thought this was a PortAudio issue, or something related to pipewire-jack… but any other software that uses this combination works perfectly and shows this monitor devices (e.g. Mixxx). Both Mixxx and Audacity are using exactly the same PortAudio 19.6.0 libs. Additionally, other non-PortAudio Jack applications such as qjackctl correctly display the additional monitor_* plugs.

My current workaround is to use Hevlum or Carla to re-patch Audacity into the monitor after pressing record.

What can possibly be the reason for these devices no longer showing in Audacity?

Windows guy here. You don’t say if you have tried the 3.2.4 AppImage: Audacity ® | | Download for Linux

I did, it does exactly the same, no Monitor devices. I also tried many AppImage versions like 3.1.2, 3.2.0, 3.2.2… they all behave the same way in this respect so I guess nothing changed in Audacity but somewhere else.

I tried debugging my local Audacity 3.3.0 build and compare my the working Mixxx build. I can see that PortAudio is reporting different things to both programs:

In Mixxx, Portaudio reports 25 devices from Pa_GetDeviceCount(), 21 from ALSA and 4 from JACK (including the 2 expected Monitors). However, in Audacity, Pa_GetDeviceCount() reports 23 devices! These are the same devices except the last two which are missing.

Both audacity and mixxx are linking to the same pipewire, pipewire “jack” libraries and the same PortAudio:

$ ldd mixxx  |grep -E 'pipewire|portaudio|jack'
	libportaudio.so.2 => /lib/x86_64-linux-gnu/libportaudio.so.2 (0x00007fc7920f2000)
	libjack.so.0 => /lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0 (0x00007fc78de7a000)
	libpipewire-0.3.so.0 => /lib/x86_64-linux-gnu/libpipewire-0.3.so.0 (0x00007fc787a54000)

$ ldd audacity  |grep -E 'pipewire|portaudio|jack'
	libportaudio.so.2 => /lib/x86_64-linux-gnu/libportaudio.so.2 (0x00007f06196cf000)
	libjack.so.0 => /lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0 (0x00007f0617d00000)
	libpipewire-0.3.so.0 => /lib/x86_64-linux-gnu/libpipewire-0.3.so.0 (0x00007f06171e3000)

:confused:

Then I would open an issue here: Issues · audacity/audacity · GitHub

There may be someone on the discord development channel that can shed some light: Audacity dev

I’ve used Audacity for many years on various Debian / Ubuntu based distros and I don’t recall ever seeing a “Monitor” device listed in Audacity. The way that I’ve recorded computer playback is to select “Pulse” or “default” in Audacity, and use pavucontrol to select “Monitor of …” (as described here: Tutorial - Recording Computer Playback on Linux - Audacity Manual)

(“default” is an alias for whatever device is the system default, which is usually “PulseAudio” on Linux)

It would seem that you mostly used Audacity with ALSA+PulseAudio, I am on JACK and on a fairly new PipeWire stack (soon default in Debian 12 and Ubuntu 22.10).

I generally use ALSA + Pulse on my laptop (for “casual” use of Audacity), and JackAudio in the studio.

I’ll start using PipeWire on my laptop when it becomes the default in Xubuntu (I like to keep my laptop OS mostly unmodified to facilitate software testing). I do have Jack on my laptop, so that I can test with it when appropriate, but Pulse is better for casual day to day audio.

I’ll wait until PipeWire is more mature (possibly version 1.0) before I use it in the studio.

So are you saying that the “Monitor” device is a feature of PipeWire?