Need help with switching JACK source and Carla patchbay

Hello!

Got my Manjaro set up for audio with Cadence and my Focusrite Scarlett 2i4 2nd gen. Works great! I just have to start the Jack server, then it routes pulse audio to it, and both low latency works and normal system audio at the same time.

However…

I got headphones with a microphone, and that’s not for some reason working with JACK, i have to specifically switch to it in the audio source picker in the taskbar.

That’s fine, but then i can’t switch back to JACK from there, i have to open up audio system settings and select JACK sink from there. Cause selecting line outs from my audio interface does nothing and stops all audio (cause pulse is routed through jack while jack is running).

Not only that but, i’ve seen people use Catia to route audio to all kinds of different applications, outputs and stuff, all i see in Catia is what basically amounts to in and out. How do i for example add my headset there, and route audio to both audio interface pulseaudio link, and the headset at the same time? Or send the microphone input from headset somewhere else? I included the screenshot of Catia to show what i mean, i don’t have anything in there. And i couldn’t figure out how to add devices to it, if that’s even an option.

How do i get Catia working?

Included in the screenshots are also Cadence settings, and screenshots of audio system settings panel and quick switch panel on taskbar to show what i mean when i say i can’ select jack from there.

Link to screenshots: Patchbay help. - Album on Imgur

Please help!

can you report

inxi -Fza

Yes! Sorry!

Here:

inxi -Fza                                                                                      ✔ 
System:
  Kernel: 6.1.1-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.1-x86_64
    root=UUID=27a6f9c0-8b45-42c5-85e1-be095307048f rw rootflags=subvol=@
    quiet splash resume=UUID=b58bc35c-1a93-4c4c-a1ec-5eefe535dea6
    udev.log_priority=3
  Desktop: KDE Plasma v: 5.26.4 tk: Qt v: 5.15.7 wm: kwin_wayland vt: 2
    dm: SDDM Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: B550M Pro4 serial: <superuser required>
    UEFI: American Megatrends LLC. v: P2.30 date: 02/24/2022
CPU:
  Info: model: AMD Ryzen 5 5600G with Radeon Graphics bits: 64 type: MT MCP
    arch: Zen 3 gen: 4 level: v3 note: check built: 2021-22
    process: TSMC n7 (7nm) family: 0x19 (25) model-id: 0x50 (80) stepping: 0
    microcode: 0xA50000C
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 16 MiB desc: 1x16 MiB
  Speed (MHz): avg: 2559 high: 3900 min/max: 1400/4464 boost: enabled
    scaling: driver: acpi-cpufreq governor: schedutil cores: 1: 3900 2: 3462
    3: 1400 4: 2895 5: 1400 6: 3900 7: 2993 8: 1400 9: 1400 10: 2668 11: 3900
    12: 1400 bogomips: 93456
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, IBRS_FW,
    STIBP: always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Cezanne [Radeon Vega Series / Radeon Mobile Series]
    driver: amdgpu v: kernel arch: GCN-5.1 code: Vega-2 process: TSMC n7 (7nm)
    built: 2018-21 pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s ports: active: DP-1,HDMI-A-1 empty: DP-2 bus-ID: 05:00.0
    chip-ID: 1002:1638 class-ID: 0300 temp: 30.0 C
  Display: wayland server: X.org v: 1.21.1.6 with: Xwayland v: 22.1.7
    compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu d-rect: 5120x1440
    display-ID: 0
  Monitor-1: DP-1 pos: primary,left res: 2560x1440 size: N/A modes: N/A
  Monitor-2: HDMI-A-1 pos: right res: 2560x1440 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 22.3.1 renderer: AMD Radeon Graphics (renoir LLVM
    14.0.6 DRM 3.49 6.1.1-1-MANJARO) direct render: Yes
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio driver: snd_hda_intel
    v: kernel bus-ID: 1-7.2:5 pcie: chip-ID: 046d:0a9c gen: 3 class-ID: 0300
    speed: 8 GT/s serial: <filter> lanes: 16 link-max: gen: 4 speed: 16 GT/s
    bus-ID: 05:00.1 chip-ID: 1002:1637 class-ID: 0403
  Device-2: AMD Family 17h/19h HD Audio vendor: ASRock driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 05:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-3: Logitech G432 Gaming Headset type: USB
    driver: hid-generic,snd-usb-audio,usbhid
  Device-4: Focusrite-Novation Scarlett 2i4 USB type: USB
    driver: snd-usb-audio bus-ID: 3-2.4:5 chip-ID: 1235:8200 class-ID: 0103
  Sound API: ALSA v: k6.1.1-1-MANJARO running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: JACK v: 1.9.21 running: yes
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.63 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: ASRock driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
    port: f000 bus-ID: 03:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp3s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
  Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) type: USB
    driver: btusb v: 0.8 bus-ID: 3-2.1:3 chip-ID: 0a12:0001 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Drives:
  Local Storage: total: 698.65 GiB used: 114.92 GiB (16.4%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Kingston model: SNV2S500G
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
    lanes: 4 type: SSD serial: <filter> rev: SBI02102 temp: 30.9 C scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 250GB
    size: 232.89 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: 1B6Q scheme: GPT
Partition:
  ID-1: / raw-size: 448.97 GiB size: 448.97 GiB (100.00%)
    used: 114.92 GiB (25.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 608 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 448.97 GiB size: 448.97 GiB (100.00%)
    used: 114.92 GiB (25.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 448.97 GiB size: 448.97 GiB (100.00%)
    used: 114.92 GiB (25.6%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: partition size: 16.5 GiB used: 5.2 MiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 38.4 C mobo: N/A gpu: amdgpu temp: 30.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 314 Uptime: 1h 12m wakeups: 0 Memory: 15 GiB
  used: 5.98 GiB (39.9%) Init: systemd v: 252 default: graphical
  tool: systemctl Compilers: gcc: 12.2.0 clang: 14.0.6 Packages: pm: pacman
  pkgs: 1494 libs: 467 tools: pamac pm: flatpak pkgs: 0 Shell: Zsh v: 5.9
  default: Bash v: 5.1.16 running-in: konsole inxi: 3.3.24

have a look on this
https://wiki.archlinux.org/title/JACK_Audio_Connection_Kit

you cant have all working

 Sound API: ALSA v: k6.1.1-1-MANJARO running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: JACK v: 1.9.21 running: yes
  Sound Server-2: PulseAudio v: 16.1 running: yes
  Sound Server-3: PipeWire v: 0.3.63 running: yes

what about

sudo pacman -Qs jack

I didn’t even know pipewire was in Manjaro. Is that creating a problem?

Why can’t i have multiple running though? The headset just uses pulseaudio doesn’t it? Which is routed through jack, i don’t see why it wouldn’t work? Everything else works, i can play the guitar through jack, while youtube is playing a song in mozilla, i mean.

Also, doesn’t explain why i’m not seeing anything in the patchbay, the videos i’ve seen on this were routing audio from microphone to DAW, then to OBS, then the unaltered mic stream to something else.
Why am i not seeing any of this? Do i need to add it somehow to Catia or should it recognize it automatically? The info on this is pretty scarce, or i don’t know where to look (catia, not jack).

For the headset, i don’t mind switching back and forth honestly, i’d rather patch the audio to both audio interface and headset so i can just use both any time, but if that’s not an option, it’s totally fine. But i can’t select JACK pulseaudio from the taskbar - it’s annoying to have to open up settings every time i want to switch back - how do i at least add JACK pulseaudio to the taskbar switcher?

Also - here, as requested:

sudo pacman -Qs jack  1 ✘
local/a2jmidid 9-3 (pro-audio)
A daemon for exposing legacy ALSA sequencer applications in JACK MIDI system.
local/cadence 0.9.2-1
JACK toolbox for audio production.
local/jack2 1.9.21-3
The JACK low-latency audio server
local/jack2-dbus 1.9.21-3
The JACK low-latency audio server (dbus integration)
local/jack_capture 0.9.73-8 (pro-audio)
Simple command line tool to record JACK audio output to a file
local/pulseaudio-jack 16.1-3
Jack support for PulseAudio
local/xjadeo 0.8.11-1
A simple video player that is synchronized to jack transport
local/zita-ajbridge 0.8.4-1 (pro-audio)
Jack client to use additional ALSA devices.

see this

there is
meta package manjaro-pulse , manjaro-pipewire , manjaro-gstreamer

check each package

pacman -Si manjaro-pulse

I read this thread, it’s not related to my issue. The audio is working. On both the audio interface, and the headset. I just can’t do anything to make it route one way or the other, it just has an “in” and “out” basically in the patchbay, and can’t do fancy stuff with it like i’ve seen is possible.
I want to know if this is my error, or something is wrong, and if it’s me, what to do?

I figured out how to get the JACK patchbay to the system tray - it doesn’t show virtual devices by default, i had to turn that on, now i can switch between them without hassle.

But still, curious, about that patchbay… Like, why can’t i route that headset to something else, or even route it to jack so it’s playing audio the same time other jack devices are and such…

wait next update kernel ?

I’m not using the default kernel, and i’m not using AMD HDMI audio…

And now JACK no longer outputs any sound whatsoever…

EDIT: Nevermind i unplugged my Audio interface, plugged it back in and it works now. Weird that it didn’t work throug restarts. Still can’t patch anything to anything else.

Screenshot of Cadence settings shows JACK is configured to use Focusrite Scarlett 2i4 2nd gen device for audio capture and playback: hw: USB,0 [USB Audio]
ALSA alias for the Logitech G432 headset would be: hw: Headset,0 [USB Audio]
Cadence can be reconfigured to use headset microphone for audio capture and Scarlett interface for audio playback, but JACK has to be stopped to change configuration manually

When JACK is started it takes exclusive control of the audio device, so trying to play audio from PulseAudio direct to USB interface will fail. PulseAudio streams can only access the USB interface by using the PulseAudio JACK Sink connection to play audio through JACK

Standard use case for JACK is to use one card configured to run with lowest possible latency
There are ways to add more audio devices in JACK, but they will not work well with consumer audio devices. They are intended for pro-audio devices that can be synchronised by an external word clock or a shared internal clock
How can I use multiple soundcards with JACK? | JACK Audio Connection Kit

IMO the simplest way to use multiple audio devices on any sound server is to use OBS studio, because it can use audio sources from all installed sound servers (ALSA+PulseAudio+JACK or ALSA+pw-pulse+pw-jack) and it has a good audio mixer GUI

If audio packages are configured to run in JACK connections should appear in catia patchbay. Try configuring a simple music player like Audacious to run in JACK instead of PulseAudio and it should be visible in patchbay

2 Likes

Screenshot of Cadence settings shows JACK is configured to use Focusrite Scarlett 2i4 2nd gen device for audio capture and playback: hw: USB,0 [USB Audio]
ALSA alias for the Logitech G432 headset would be: hw: Headset,0 [USB Audio]
Cadence can be reconfigured to use headset microphone for audio capture and Scarlett interface for audio playback, but JACK has to be stopped to change configuration manually

I see, so, they’re always going to be separate. That’s ok, as long as i can switch between them from the taskbar. Id’ rather not configure JACK to use headset input because then i lose my audio interface inputs i presume, so i’ll leave it as is.

When JACK is started it takes exclusive control of the audio device, so trying to play audio from PulseAudio direct to USB interface will fail. PulseAudio streams can only access the USB interface by using the PulseAudio JACK Sink connection to play audio through JACK

Yes, that i know, i can’t use direct line outs from my interface, i need to have JACK selected. Problem was, jack was only visible in Audio settings, and not on the system tray, but that’s fixed now. It was a “virtual device” and i only needed to tell audio settings to list virtual devices as well in the tray. Now i can painlessly switch between the headset and JACK whenever i need it.

Standard use case for JACK is to use one card configured to run with lowest possible latency
There are ways to add more audio devices in JACK, but they will not work well with consumer audio devices. They are intended for pro-audio devices that can be synchronised by an external word clock or a shared internal clock
How can I use multiple soundcards with JACK? | JACK Audio Connection Kit

Thanks for the link! Yes, the only reason i use JACK is for the latency. Funny thing is - even pulseaudio works with lower latency when bridged to JACK. On its own, youtube videos are ever so slightly out of sync, noticable lag. Especially when playing or pausing. JACK bridge solves this perfectly! :smiley:

Thanks for the link i’ll check it out!

IMO the simplest way to use multiple audio devices on any sound server is to use OBS studio, because it can use audio sources from all installed sound servers (ALSA+PulseAudio+JACK or ALSA+pw-pulse+pw-jack) and it has a good audio mixer GUI

If audio packages are configured to run in JACK connections should appear in catia patchbay. Try configuring a simple music player like Audacious to run in JACK instead of PulseAudio and it should be visible in patchbay

Never thought about using OBS to be honest, but good idea, thanks for the tip!

Also, Catia does seem to work after all.


I don’t know what PortAudio is on that canvas, i think Audacity, but hey, it recognized the programs running.

I just thought it can also bridge devices, but i guess not.
That’s fine, as long as i can easily switch sources, i’m good, i don’t use the headset for any audio production anyway.

Audacity uses PortAudio

portaudio.com

PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in ‘C’ or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O

it is possible for inxi to show PipeWire is running in addition to JACK and PulseAudio.
But PipeWire is more than just an audio server

PipeWire / pipewire · GitLab

PipeWire is a server and user space API to deal with multimedia pipelines

PipeWire was originally only a video server

PipeWire: The Linux audio/video bus [LWN.net]

GStreamer co-creator Wim Taymans was asked to work on a Linux service to mediate web browsers’ access to camera devices. Initially, he called the project PulseVideo

KDE requires PipeWire to support Wayland