Possible to control fixtures with Ardour MIDI via ALSA only? No jack?

Ask a question about the usage of QLC+ with the Linux operating system
Post Reply
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

Is it possible to control fixtures with Ardour MIDI via ALSA only? No jack? If so, how?

I've tried everything I can think of to send MIDI data out of Ardour and then pick it up with QLC+ but can't get the fixture to do anything. (Fixture works fine from virtual console in QLCplus.)

Ubuntu 24 x86_64. Ardour 8.6 release. No jack installed on system whatsoever. Latest QLCplus, pulled and built from Github just now.

I tried making virtual MIDI devices, but that doesn't help.

Ardour MIDI connection window and QLC i/o looks like (imgur link):

https://imgur.com/a/ardour-qlcplus-midi ... ng-SvetsTH

$ aconnect -l
client 0: 'System' [type=kernel]
0 'Timer '
Connecting To: 144:0
1 'Announce '
Connecting To: 144:0, 139:0
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 32: 'Virtual Raw MIDI 4-0' [type=kernel,card=4]
0 'VirMIDI 4-0 '
Connecting To: 130:0, 128:0
Connected From: 129:0
client 33: 'Virtual Raw MIDI 4-1' [type=kernel,card=4]
0 'VirMIDI 4-1 '
Connecting To: 132:0
Connected From: 131:0
client 34: 'Virtual Raw MIDI 4-2' [type=kernel,card=4]
0 'VirMIDI 4-2 '
Connecting To: 134:0
Connected From: 133:0
client 35: 'Virtual Raw MIDI 4-3' [type=kernel,card=4]
0 'VirMIDI 4-3 '
Connecting To: 136:0
Connected From: 135:0
client 128: 'qlcplus' [type=user,pid=41873]
0 '__QLC__ '
Connecting To: 138:0
Connected From: 137:0, 32:0
client 144: 'PipeWire-System' [type=user,pid=3001]
0 'input '
Connected From: 0:1, 0:0
client 145: 'PipeWire-RT-Event' [type=user,pid=3001]
0 'input
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

I tested on Ubuntu 22.04 with Pipewire 1.0.7 without make virtual midi devices, in Ardour I checked all midi tracks outputs to QLC+. In QLC+ I checked MIDI input2. When playing the midi tracks in Ardour I can see that is received in QLC+.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

I'm still not able to get it working. Here is my setup (no jack, no a2jmidid, just ardour (ALSA) + qlcplus. Ubuntu 24).

Image

My fixtures aren't doing anything. How can I confirm that midi data is getting to qlcplus? Which input should I choose? Why isn't the "QLC" option shown in aconnect -l anmd the ardour MIDI connection window appearing in the list inside QLC?
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Can you share your project for testing?.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

What do you mean by "project"?
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Your QLC+ workspace with the fixtures, functions and virtual console widgets.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

Everything works under Jack. So it's not my fixtures, functions or virtual console widgets. It's something about the connections and the flow of midi data from Ardour (ALSA only) into QLC plus. And I've shared those screenshots.

How can I closer inspect the flow of midi data in order to zero in on where the data flow is failing?
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

With the workspace file we can see if there is any misconfigured option and do tests. For the screenshots you attach, I can only tell you that it is advisable to use different universes for the inputs and outputs. Have you tried the MIDI input2?.
In the attached image you can see that is working in my system (note the joystick icon in the universe 3) this indicate there is midi data in input2.

Screenshot_20240817_180343.png
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

I appreciate your help on this. A few questions/observations:
  • 1. Why is two universes considered best practice? I've never done that before with the working Jack setup.
    2. Yes I have tried all the inputs, including "input 2". No midi data ever appears. No joystick. Nothing.
    3. QLC config file attached
    4. Lots of qlc+ seg fault crashes when I am clicking around the different inputs, especially when I have the green dots set in Ardour
    5. Why don't I have the same "qlcplus_(playback_0)_QLC_" line in Ardour that you do? Look at the image I shared earlier. Why is mine different?
Thanks!
Attachments
qlcplus_config_2019.qxw
(201.19 KiB) Downloaded 58 times
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

I'm using Ubuntu 22.04 with Pipewire 1.0.7 with Wireplumber and Ardour 7.5.0. Your QLC+ workspace is working in my system MIDI is received from Ardour in "input2"
Ardour is from this ppa: https://launchpad.net/~ubuntustudio-ppa ... -backports
Pipewire and Wireplumber are from this ppa: https://pipewire-debian.github.io/pipewire-debian/

1. Is a best practice to separate inputs and outputs in separated universes.
2. In my laptop is working on input2
4. Sometimes QLC+ freezes testing things in MIDI inputs, for example moving very fast buttons and sliders on my NanoKontrol2.
5. I think this is about Ubuntu version or that I have installed Pipewire. Or maybe Ardour version. Ny QLC+ input is listed in External in Ardour MIDI connections.
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

I just tested with Ardour 8.6 and is working too.
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

One more thing you are using Pipewire, what version?. Pipewire acts as a replacement of Jack Audio server. In Ardour -> Audio/MIdi config select connect to Jack.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

Code: Select all

$ aptitude search pipewire -F "%c %p %d %V %v"
i pipewire                                        audio and video processing engine multimedia server       1.0.5-1ubuntu1 1.0.5-1ubuntu1
i pipewire-alsa                                   PipeWire ALSA plugin, for ALSA applications to output via 1.0.5-1ubuntu1 1.0.5-1ubuntu1
i pipewire-audio                                  recommended set of PipeWire packages for a standard audio 1.0.5-1ubuntu1 1.0.5-1ubuntu1
p pipewire-audio-client-libraries                 transitional package for pipewire-alsa and pipewire-jack  1.0.5-1ubuntu1 <none>        
i pipewire-bin                                    PipeWire multimedia server - programs                     1.0.5-1ubuntu1 1.0.5-1ubuntu1
p pipewire-doc                                    libraries for the PipeWire multimedia server - documentat 1.0.5-1ubuntu1 <none>        
p pipewire-jack                                   PipeWire JACK plugin, for JACK applications to output via 1.0.5-1ubuntu1 <none>        
p pipewire-libcamera                              transitional package for libspa-0.2-libcamera             1.0.5-1ubuntu1 <none>        
p pipewire-module-xrdp                            audio over xrdp for PipeWire based systems                0.2-2          <none>        
i pipewire-pulse                                  PipeWire PulseAudio daemon                                1.0.5-1ubuntu1 1.0.5-1ubuntu1
p pipewire-tests                                  PipeWire multimedia server - tests and examples           1.0.5-1ubuntu1 <none>        
p pipewire-v4l2                                   PipeWire V4L2 plugin                                      1.0.5-1ubuntu1 <none>
I can't select to start Ardour/MIDI setup with JACK. It fails. Here is the attempt:

Image

And here is the error (which appears in the console window and in a dialog window in Ardour):

Code: Select all

Log Messages:
ERROR: JACK: Cannot use real-time scheduling (RR/5) (1: Operation not permitted)
ERROR: JACK: JackClient::AcquireSelfRealTime error
INFO: Scanning folders for bundled LV2s: /opt/Ardour-8.6.0/lib/LV2
INFO: xjadeo version: 0.8.13
INFO: harvid version: 901
INFO: Loading menus from /opt/Ardour-8.6.0/etc/ardour.menus
ERROR: JACK: Cannot create thread res = 1
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Install pipewire-jack an try again. Ardour is trying to start jack server. With pipewire-jack you can connect to jack from Ardour.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

Ok I did that and now I can get Ardour to open with "JACK" selected as the audio engine (without qjackctl or any explicit JACK stuff... only pipewire (and JACK internally I guess?)).

However, Ardour doesn't show any QLC MIDI destination at all.

If I start "a2jmidid -e" it'll show a QLC MIDI destination, but even after putting the green dot there for all MIDI tracks, I still don't see any data flowing to QLC+.
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

After all the checks we have made. I think this is not a QLC+ problem. Maybe it's a sound system configuration problem.
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

What is MIDI-bridge? I've never seen this in my system. (I also do not ever see a QLC playback destination.)

Image
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Pipewire creates a MIDI Bridge that manages the Jack MIDI ports.
User avatar
sbenejam
Posts: 607
Joined: Sun Apr 12, 2015 6:28 pm
Real Name: Santiago Benejam Torres
Contact:

Hi I found the solution. Install the Pipewire and Wireplumber following this instructions. It seems that the Pipewire from Ubuntu 24.04 don't work as expected. I just tested with newly installed Ubuntu 24.04 and I get it work.
https://pipewire-debian.github.io/pipewire-debian/
qlc89hz
Posts: 33
Joined: Thu Jan 31, 2019 2:41 am
Real Name: Cyrus

I like to keep my system very simple, so I think I'll use JACK until these pipewire fixes land in Ubuntu 24's main repositories.

But thank you so much for investigating and coming to a solution. I'm sure it's correct.
Post Reply