Controlling lights from Ardour via QLC+ and MIDI (Linux / Pipewire)

Hi all,

I am setting up some lights for my band and thought I would share on this board how I automated lighting changes from Ardour to QLC+ via MIDI. :slightly_smiling_face:

Goal

The goal is to trigger light changes right from Ardour via a MIDI track, with QLC+ running on the same computer.

Pipewire/JACK setup

I was using Ardour with the Pipewire / JACK driver on Linux Mint 22.1 and Ardour 8.12.

The issue I was having was that QLC+ would not show up in any “External” tab in the MIDI Connections window.

It turned out I needed to start Ardour with pipewire-jack:

sudo apt install pipewire-jack

First start QLC+, then start Ardour like this:

pw-jack -p 512 -s 44100 Ardour8

-s is for the audio sample rate and -p for the latency block size, adjust to your needs.

MIDI track setup

Now there will be a __QLC__ entry under the External outputs tab in the MIDI Connection window (provided QLC+ is running).

We can set up a MIDI track called eg “Lights” in our session and send its output to that QLC external port.

QLC+ I/O setup

In QLC+, under Input/Output, we now add a Universe, name it eg “Ardour MIDI Control”.

Then select MIDI “input” or “input2” as the input port for that Universe (you will need to try both).

Testing

Now in the Virtual Console, we can add a Button and link it to a MIDI input from Ardour to test things out.

For the final setup we should create a profile, but for testing we can enable auto detect and send a note from Ardour (eg add a note to a region in the Lights MIDI track then start the transport to play it).

If all is well the note should be detected and attached to the Button.

Now if we start the QLC+ session and send notes from Ardour, we should see the function toggle on and off!

Building from there

For my workflow I then went on to create a profile defining what notes or other MIDI messages will be used to communicate between Ardour and QLC+. https://youtube.com/watch?v=DDKXLsjCYEI

I reflected this in a patchfile (MIDNAM file) so that the corresponding QLC+ functions show up in the piano roll when I edit my lighting changes in Ardour. The Ardour Manual - MIDNAM Reference

Then for maintainability, everything that should be doable from Ardour is to be defined in the Virtual Console and mapped to an input defined in the profile.

VoilĂ ! Hope this helps some folks with gluing things together.

What’s great is you can still have a regular DMX console or MIDI controller for manual light operations (I set up an Arturia Minilab3 MIDI controller for my drummer), but have Ardour trigger automatic light changes during songs that are in the session.

Cheers

3 Likes

Note that for most distributions you will not need to use pw-jack. Needing to use that tool likely indicates that you have both jackd and pipewire-jack installed. It is possible that you do not have jackd installed, but pipewire-jack is not installed properly, but the original use case of pw-jack was for developers who were working on pipewire-jack and needed to keep jackd installed to compare behavior. The typical current installation will have only pipewire-jack installed, so all JACK aware applications will load the libjack.so provided by pipewire by default.

Hey thanks for the pointers. I am still very much a noob user when it comes to Linux audio backends. Not sure that I have jackd installed, I guess so but I will look that up… I actually had to manually install pipewire-jack and did nothing else than the apt install command I listed so it’s very possible I missed some steps. My initial problem was that I could see Ardour and my Focusrite sound card IO in the qjackctl graph view while everything else including QLC+ was showing in qpwgraph only, so obviioisoy they could not be connected.

watching to see if it works out, let us know what you learn. Good luck

Hi,

I uninstalled jackd using sudo apt remove jackd, which removed jackd and qjackctl.

I restarted my computer. Then I launched Ardour using just the Ardour8 command… But the initial problematic behavior is still there: I can’t see Ardour in qpwgraph and there’s no external __QLC__ port in the MIDI Connections window.

I noticed the jackd command was still available in the terminal, so I also ran sudo apt remove jackd2 and the command was not available anymore.

But now when I start Ardour8, selecting:

  • Audio system: JACK/Pipewire
  • Driver: ALSA
  • Device: Scarlett 4i4 USB

as before, I get this error message

Could not reconnect to Audio/MIDI engine

The pw-jack command still works. And reinstalling jackd2 makes plain Ardour8 work again.

Most likely my pipewire install is incorrect (eg my systemctl doesn’t find a pipewire.service), so I’ll leave it at that and stick to pw-jack for now, at least it works. :slight_smile:

The pipewire installation on your system is not configured to replace JACK by default. If it was, there would be no reason or need to use pw-jack.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.