Virtual midi ports and control surfaces


I have been trying with no success to connect virtual midi ports to Ardour’s MIDI control in and out.

What I’m doing: I have an X-Touch (the big one) and I use Pure Data to patch the incoming MIDI commands from the X-Touch (inspired by So far I am not even manipulating anything, just sending midi and system messages through. I can tell all ports are there from the Jack’s Connection Window. However, the Pure Data midi ports are not showing up for selection as “Incoming MIDI on” or “Outgoing MIDI on” in the Control Protocol Settings dialog. The Pure Data ports do show up on the Ardour MIDI Connection Manager, however:

I’m using Ardour 5.12.0 on Ubuntu 18.04.3 LTS. I am using Jack’s ALSA driver and no MIDI driver set there, but run the a2jmidid -e & command after Jack’s startup.

Should the midi ports from Pure Data show up to be connected as a control surface? Or did I make a logical error in my thinking?

Thanks for reading.

virtual midi input devices should also work – Using virtual midi keyboard

but I think ardour by default refuses to list them from the Track Input midi pulldown selection (above where the plugin list is located in the mixer area)

It is possible to see the virtual midi device from elsewhere with Midi Connections and choosing ‘rt-context’/Inputs from the track-header.
It is also possible to bind the virtual midi device to Ardour with something like qjackctl.

@paul @x42 ^ is it possible to have this possibly looked into as a feature or bug? apparently I’m not the only noticing this issue.


1 Like

nevermind – I spotted it
Development Update, November 2019

Most recently, Robin has also been nerd-sniped into a very full virtual MIDI keyboard implementation that can be used to deliver complex MIDI to any part of Ardour (it shows up as a port just like a hardware device would, and you can connect it just like a hardware device)."

@philsuess I suppose the issue with virtual midi device would be better supported for the next release edition…

I guess I have to be patient. And I was getting so excited too…

Wrong Preference pane. – The screenshot you show depicts a somewhat experimental I/O MIDI port manager. It is intended to rename ports and set meta-data. I suggest to ignore it in 5.12.

You want Preferences > Control Surfaces (not Preferences > MIDI ports), but it looks like you’ve already connected it using the connection manager. That does suffice.

1 Like

Is that needed for Ardour, too? Ardour comes with dedicated Mackie profiles specifically for the X-Touch series. Check Preferences > Control Surfaces > Mackie (enable) > Edit

Here is what that looks like.

The problem is that the Pure Data virtual ports are not showing for selection as Control Surface. I want to specify my custom midi mapping as well, that is why I would like to select the midi from here.

Well no, it is not needed. That already works great as far as it is currently supported in Ardour. My ambitions run a little higher and I want to use Pure Data to capture some events to do some re-routing (so-to-speak). Some more detail on what my goal is here: Behringer x-touch series. But on my way there I stumbled on the problems of what this threat is about.

Thank you for replying. I love Ardour and will continue to support your effort!

Right that dropdown only shows jack-ports with the property “Terminal”. That is intentional, control surfaces are usually physical devices and other applications would just clutter up the list.

Just leave it as “Disconnected” and connect the ports using qjackctl or Ardour’s connection matrix. There is only one set of JACK connections anyway, and Ardour will restore them when started.

Thanks! It never occurred to me that it would work if it said “Disconnected”. Problem solved.

OK. I understand now. Thanks for clarifying this.

Good, point we should rename it. Perhaps “manual connection” or “no dedicated port”.

Could it be that this property is used to filter the Mackie Out commands? What I observe is when I connect my Xtouch Midi1 to Ardour’s mackie in, everything works. But when I connect Xtouch Midi 1 to my Midi through and the Midi through to mackie out of Ardour, the 8 faders for my tracks get no mackie out messages (using the Midi tracer in Ardour). I leave the mackie out connected to the Xtouch Midi 1. Yet, the track faders control the track gains just fine - they then jump down to 0 (because there is no mackie out). The scribble scripts stay empty as well. And now the strangest thing: the master gain slider works as expected and I observe a lot of messages in the Midi tracer; the whole transport section on my Xtouch also works fine. Why is Ardour not sending out mackie out messages to my track faders when I route Xtouch Midi 1 to Midi through?

EDIT: The second time I set this up, it wouldn’t work: the strip faders are not controlling anything (I can see messages in the mackie in, however). Now what I discovered just now: if I set the Device Type to “Mackie Control”, everything works when I route my XTouch in Through. Everything! When I change the Device Type back to “Behringer XTouch”, it’s silent as before.

The port property makes no difference whatsoever to the Mackie support code (or any other control protocol support code), other than the dropdown listing.

You should probably get a debug build, and use -D mackie to see what is going on. There’s one available for 5.x at (64 bit linux)

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