Playing VL2 virtual instruments: problems to install and setup Jack audio

My new hobby is to play VL2 virtual instruments on my Manjaro system by using a USB connected MIDI keyboard. I have chosen two VL2 VIs: the setBfree (Hammond organ) and the piano plugin mda.lv2. Both are available for free via AUR.

As I do not want to record or produce music, I do not want to install a real DAW. Instead, it seems, that installing Jack audio and running the Jack server should be enough, to get startet…. - I thought, based on all the information from the web and KI.

But actually, when I start the Jack server and open its GUI, there are only “system capture_1 and capture_2” and twice the element “14:Midi Through Port-0” – I suppose, that there is no connection active to Pipewire audio and Pulse audio.

When I start “setBfree”, it comes up with its own GUI and in the GUI of QJackCtl, its shows up with an element “setBfree DSP Tonewheel Organ” offering a control and a notify access-point and Out left / Out right.

Starting QJackCtl and then setBfree, then terminating setBfree and stopping QJackCtl server again will result in the following log output:

13:02:08.132 Statistik zurückgesetzt.
13:02:08.132 ALSA-Verbindung geändert.
13:02:08.133 D-Bus: Dienst ist nicht verfügbar (org.jackaudio.service aka jackdbus).
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
13:02:08.143 Schaubild der ALSA-Verbindungen geändert.
13:02:11.771 JACK startet…
13:02:11.771 /usr/bin/jackd -dalsa -dhw:0
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
13:02:11.772 JACK wurde mit PID = 8099 gestartet.
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
jack_get_descriptor : dll
jack_get_descriptor returns null for ‘jack_firewire.so’
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
jackdmp 1.9.22
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2023 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is “Don’t restrict self connect requests”
Cannot lock down 107341340 byte memory area (Cannot allocate memory)
audio_reservation_init
Acquire audio card Audio0
creating alsa driver … hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
ALSA: Cannot open PCM device alsa_pcm for playback. Falling back to capture-only mode
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
Cannot use real-time scheduling (RR/10) (1: Operation not permitted)
AcquireSelfRealTime error
13:02:14.022 JACK-Verbindung geändert.
13:02:14.022 Serverkonfiguration nach “/home/clemens/.jackdrc” gespeichert.
13:02:14.022 Statistik zurückgesetzt.
13:02:14.050 Client aktiviert
13:02:14.050 Steckfeld deaktiviert.
13:02:14.087 Schaubild der JACK-Verbindungen geändert.
Cannot lock down 107341340 byte memory area (Nicht genügend Hauptspeicher verfügbar)
13:04:17.156 Schaubild der JACK-Verbindungen geändert.
13:04:17.347 JACK-Verbindung geändert.
13:04:17.348 Schaubild der JACK-Verbindungen geändert.
13:07:04.060 Schaubild der JACK-Verbindungen geändert.
13:07:04.207 JACK-Verbindung geändert.

On my Manjaro, I have installed QJackCtl, Jack Mixer, jack2, Calf Plugin Pack for Jack (calf).

Further I have installed setBfree-standalone and x42-whirl and mda.lv2

As my Manjaro is running flawlessly, I have not added detailed infos here using inxi etc. But if required, I will add this info on request.

The information in the web about activating some services or setting up some groups like “realtime” etc. where very confusing for me. Also there has been sometimes the recommendation, to install jack2-dbus.

But I did not find the information, how I could proceed to set up these components, so that I can connect them in the Jack GUI successfully. Many explanations refer to the older pulse audio system and I don’t want to break my system by doing something, which is incompatible with pipewire audio.

Any helping hints are welcome!


Mod edit:- Corrected pre-formatted text according to forum guidelines. No charge.
See How to Post Command Output as Preformatted Text :eyes:

These may be helpful:

@nikgnomic might offer some insight when he is next online.

Regards.

Thank you for the two information sources. I know them both and both seem to be in part outdated, especially “Linux Musician”, as it refers to Pulse audio, while we are on Pipewire.

I found out, that perhaps my configuration cannot work, because I do not have a separate sound card in my computer. It is equipped with the regular onboard sound, belonging to the AMD B550 chipset. In Pavue control it is named Radeon High Definition Audio Controller (Rembrandt/Strix).

But actually I do not use the onboard audio out, as my display has a built in audio interface, which is accessed via HDMI / DisplayPort.

In Pavue control, I do not see any additional item after having JACK installed or having JACK server started. Is that OK?

In the interface settings of QJackCtl, I can select between:
hw:C920 HD Pro Webcam
hw:Generic HD Audio Generic
hw:Generic_1 HD Audio Generic
hw:Generic_1.0 ALC897
hw:MICROPHONE USB Microphone
default

Only hw:Generic_1 will allow to set connections between the block “system midi_capture_1” and the block of the organ “control” And it auto-connects from the block “organ” to “system midi_playback_1”
But there is no block, representing the non-MIDI sources like Audacious or the Browser and no block, representing the Input of the Soundcard.

I have tried to connect an external USB audio interface (Behringer UCA202). It shows up twice in the JACK interface settings, but when selected, the LV2-organ does not show up in the GUI of QJackCtl. So this is no solution.

It seems, that my Jack server cannot connect to any audio hardware on my system. In UDEV directory, there is no rule - it is empty. All audio software sources are functioning just as before I installed Jack audio. If I try to tip the organ in the GUI, it responds visually, but no sound gets to my computer soundcard / speakers.

Some additional info from Terminal:

arecord -l                                                     
List of hardware devices (CAPTURE) 
Karte 0: C920 [HD Pro Webcam C920], Gerät 0: USB Audio [USB Audio]
     Sub-Geräte: 0/1
     Sub-Gerät #0: subdevice 
#0Karte 2: Generic_1 [HD-Audio Generic], Gerät 0: ALC897 Analog [ALC897 Analog]
     Sub-Geräte: 0/1
     Sub-Gerät #0: subdevice #0
Karte 2: Generic_1 [HD-Audio Generic], Gerät 2: ALC897 Alt Analog [ALC897 Alt Analog]
     Sub-Geräte: 1/1
     Sub-Gerät #0: subdevice #0
Karte 3: MICROPHONE [USB MICROPHONE], Gerät 0: USB Audio [USB Audio]
     Sub-Geräte: 0/1
     Sub-Gerät #0: subdevice #0
pactl list short sinks
    183	alsa_output.pci-0000_0e_00.1.hdmi-stereo.5	PipeWire s32le 2ch 48000Hz	SUSPENDED
pactl list short sources 	
60 alsa_input.usb-MICE_MICROPHONE_USB_MICROPHONE_201308-00.mono-fallback	PipeWire	s16le 1ch 48000Hz	SUSPENDED63	alsa_input.usb-046d_HD_Pro_Webcam_C920_CD859BDF-02.analog-stereo	PipeWire	s16le 2ch 32000Hz	SUSPENDED183	alsa_output.pci-0000_0e_00.1.hdmi-stereo.5.monitor	PipeWire	s32le 2ch 48000Hz	SUSPENDED

In order to give more information, I have just simply opended and started the Jack server by QJackCtl and after that, I have stopped the server again. This is the logging:

21:49:35.682 Statistik zurückgesetzt.
21:49:35.683 ALSA-Verbindung geändert.
21:49:35.684 D-Bus: Dienst ist nicht verfügbar (org.jackaudio.service aka jackdbus).
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
21:49:35.725 Schaubild der ALSA-Verbindungen geändert.
21:49:56.983 JACK startet…
21:49:56.983 /usr/bin/jackd -dalsa -dhw:Generic_1 -r48000 -p128 -n2 -Xseq
Cannot connect to server socket err = Datei oder Verzeichnis nicht gefunden
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
21:49:56.985 JACK wurde mit PID = 42377 gestartet.
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
jack_get_descriptor : dll
jack_get_descriptor returns null for ‘jack_firewire.so’
Could not open component .so ‘/usr/lib/jack/jack_firewire.so’: libffado.so.2: cannot open shared object file: No such file or directory
jackdmp 1.9.22
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2023 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is “Don’t restrict self connect requests”
Cannot lock down 107341340 byte memory area (Cannot allocate memory)
audio_reservation_init
Acquire audio card Audio2
creating alsa driver … hw:Generic_1|hw:Generic_1|128|2|48000|0|0|nomon|swmeter|-|32bit
configuring for 48000Hz, period = 128 frames (2.7 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 2 periods for playback
21:49:57.243 Schaubild der ALSA-Verbindungen geändert.
port created: Midi-Through:midi/playback_1
port created: Midi-Through:midi/capture_1
Cannot use real-time scheduling (RR/10) (1: Operation not permitted)
AcquireSelfRealTime error
21:49:59.178 JACK-Verbindung geändert.
21:49:59.178 Serverkonfiguration nach “/home/clemens/.jackdrc” gespeichert.
21:49:59.178 Statistik zurückgesetzt.
21:49:59.182 Client aktiviert
21:49:59.182 Steckfeld deaktiviert.
21:49:59.187 Schaubild der JACK-Verbindungen geändert.
Cannot lock down 107341340 byte memory area (Nicht genügend Hauptspeicher verfügbar)
21:50:10.412 Client deaktiviert.
21:50:10.413 JACK fährt herunter…
Jack main caught signal 15
port deleted: Midi-Through:midi/playback_1
port deleted: Midi-Through:midi/capture_1
21:50:10.504 Schaubild der ALSA-Verbindungen geändert.
Released audio card Audio2
audio_reservation_finish
21:50:10.568 JACK wurde angehalten

I will wait, until @nikgnomic will perhaps answer here.


Mod edit:- Tidied pre-formatted text. No charge.
Please see How to Post Command Output as Preformatted Text :eyes:

I have only ever used a discrete soundcard or an external (USB) DAC, and there seemed no issues in those cases. I’ve not known many to have much success configuring professional audio with onboard audio. Which is not to say it can’t be done. :slight_smile:

However, to be clear, I have only used these, but not had to configure them on Linux, as someone else had kindly setup my environment beforehand.

In short, apart from finding possibly helpful information for you online, I’m not much help. However, @nikgnomic or others may well be.

Regards.

Pipewire replaces PulseAudio and JACK. It also emulates them, legacy programs such as setBfree can work with Pipewire without understanding Pipewire.

QjackCtl has a pipewire successor (by the same developer) qpwgraph.

My advice is to install pipewire-jack and pipewire-pulse. During installation pipewire-jack can remove jack2, choose Yes.

In my experience built-in audio interfaces such as ALC897 will work but may have a high latency (responsetime between key-press and hearing the sound), any external audio interface will have a lower latency. But ALC897 will work.

I am using setBfree in the same way as you. I have attached a screenshot of the internal connections as shown by qpwgraph.

From the qpwgraph manual: Ports are directional, they can be either:

  • Source ports (i.e. output). Located at the right-most edge of a node, they generate an audio/video/midi stream.

  • Sink ports (i.e. input). Located at the left-most edge of a node, they consume an audio/video/midi stream.

Ports also have different types:

  • Audio (default color: green)

  • Video (default color: blue)

  • PipeWire/JACK MIDI (default color: red)

  • ALSA MIDI (default color: purple)

Ports of the same type and opposite directions can be connected.

2 Likes

I am on a hurry actually. But I have quickly tried to install pipewire-jack and then check with QJackCtl and its graphics.

And WOW!!! Now I can see all the connections which could be made and which were missing.

I will report this evening about my further experiences.

Thank you for your help!!!

2 Likes

Yes, I could play the first keys on the setBfree organ by clicking with the mouse on the keys, as I still have no keyboard yet. Wonderful this sound! And I am happy about this success.

I am wondering, why I see a pulse audio volume control and not ALSA. I thought, Manjaro would use Pipewire audio by default and send all the audio to an ALSA control from which the sound will be lead to the soundcard / output to the amplifier etc. – But perhaps I am still misunderstanding something here?

Further I wonder, what are the 2 blocks BLE MIDI 1 and the 2 blocks 14:Midi Through in my graphic screenshot?

Further, the audio out is by far too low, even if I adjust the volume control to max. Therefor I tried to insert the Jack Mixer, as this contains a volume control. I could start the mixer and have it in the graph of QJackCtl, but I could not make useful connections to it.

And additionally, all audio, which comes from software like audacious, from the browser or VLC sounds, like there would be only the subwoofer active. But my small amplifier and the sound output to the amplifier only work with stereo output and are not separated to an extra channel for a woofer. And this effect remains the same, even when I stop Jack audio server and also, when I finish Jack completely. The result is, that I don’t have an acceptable audio out, when using other audio sources than MIDI devices. What is wrong there?

And the last one: I have installed mda.lv2 so that I can play the piano from this collection. But I have no clue, how to activate mda.lv2 within my configuration. I even don’t know, how to start this plugin.

ALSA is the low-level sound subsystem in the kernel, which talks directly to the hardware.

pulseaudio and pipewire are both frameworks on top of ALSA, extending its functionality and making its configuration more accessible to userspace. For that matter, pipewire is not actually a sound system like pulseaudio, but a complete multimedia streaming framework, which deals with both sound and video.

I will leave the rest of your questions to someone more knowledgeable about this subject than me. :wink:

2 Likes

I have found the disturbing item: Before I had Jack audio installed, I had Easy Effects installed. Easy Effects is a systemwide equalizer and it installs Jack2. By installing pipewire-jack, the jack 2 was removed and in consequence EasyEffects had a problem.

After removing Easy Effects and rebooting, the system works just as it should. I could play back from a sound file and simultaneously play the organ.:slight_smile:
I was astonished, that now the Jack server will be started automatically and is always in use. The sound is OK and the volume is controlled as without Jack by the pulse audio volume control.

The pulse volume control only appears in the graph, when it is shown in a window. This volume control seems to me to be not very useful in the graph window, but it did confuse me a bit.

My remaining questions:

What purpose / function do the 2 blocks “BLE MIDI 1” and the 2 blocks “14:Midi:Through” in my graphic screenshot have?

I would like to insert the Jack Mixer and also an LV2 equalizer and the LV2 piano plugin from the collection mda.lv2 (AUR). I don’t know, how to get LV2 plugins to start and to work. Do they run in a DAW only? The Jack Mixer shows up in the graph and I can make connections to it, but it seems that they will not result in any effect.
I want to keep my system lightweight by not installing a DAW, because I won’t need most of the DAW functionality. Actually I have bought a Nektar Impact GX61 keyboard and it comes with a Bitwig Studio DAW. Bitwig Studio will run on Windows, MacOS and Linux and it is in the Flatpak repo.

Thank you for all your helpful hints. I am happy about my efforts I had til this point now!

2 Likes

jack2 is installed by default on most Manjaro ISOs (except for Manjaro i3 that has no software audio servers, just ALSA)

easyeffects (previously known as pulseeffects) provides a small number of audio DSP plugins for pipewire-pulse with simpler GUI controls than LADSPA/LV2/VST plugins in JACK
(not systemwide)

MIDI over Bluetooth Low Energy (BLE-MIDI) – MIDI.org
This specification defines a method for encoding and decoding MIDI data for transmission over Bluetooth Low Energy (BLE) connections which enables product compatibility across all computing platforms (iOS, MacOS, Windows, and Android).

Wikipedia - MIDI - Thru port
Most devices do not copy messages from their input to their output port. A third type of port, the thru port, emits a copy of everything received at the input port, allowing data to be forwarded to another instrument in a daisy-chain arrangement. Not all devices feature thru ports, and devices that lack the ability to generate MIDI data, such as effects units and sound modules, may not include out ports.

Graph screenshot shows no audio input connections for jack-mixer and monitor output only
I suggest add some input and output channels to jack-mixer GUI:

connect setb2free audio outputs to mixer input channel
and mixer output channel to input of ALSA playback device

LV2 plugins need a lv2-host package. The simplest lv2-host GUI is Carla
(Carla uses a JACK server by default, but can also be used with a PulseAudio server or ALSA - systemwide)
Manjaro repositories also has Element plugin host

1 Like

Oh thank you for your helpful reply. Late yesterday, I have discovered Carla and installed it. In order to start this as stand alone, I have used: pw-jack carla-rack
Therefor in Carla / Settings / Engine the process mode is set and fixed to Continuous Rack.

The GUI of Carla showed up and I can switch to its own patch field. The patch field shows all the elements, I know from QJackCtl patch field already.

While I could add plugins in the Carla rack, I could not put them in the patchbay and connect them somehow. When I start the setBfree (standalone plugin), it will come up with its own GUI and the organ shows up in the patchbay and is well functioning.
Meanwhile I know, that in Rack mode of Carla, all the plugins do not show up in the patchbay. They are symbolized in the block, named Carla.

Further I had to correct the paths to the plugins in Carla and also, a file named manifest.ttl was not present at the right places. I could copy the one into the places, which were expected by Carla.

When I click on the block “Carla”, a keyboard will turn in active mode at the bottom of the patchbay and I see the audio level in a meter at the right border of the patchbay, when hitting a key. But when I connect the block Carla audio out to the input of my output device, no audio can be heard.

When I play audio from browser or vlc or audacity, it will show up correctly connected in the patchbay and it will work. It seems, that this the only remaining thing to solve.

Any idea to this?

Continuous rack mode is the least intuitive option as it does not show what plugins are loaded. If Patchbay or Single Client mode is selected, plugin looks similar to a standalone plugin

Screenshot shows audio connections from Carl to Radeon HDMI output but no MIDI input

The Edit window for the plugin has an on-screen keyboard to test if audio is working without a MIDI controller