How to send MIDI CCs (non-32) to external hardware

I know how to send MIDI CC32 program changes via a MIDI track, but can’t figure out how to send non-32 controller change messages (required by some equipment).

Can Ardour do this? If so, how? If not, is there a plugin that can?

Ardour 6 on Ubuntu 16.04.


Click on the “a” (automation) button of the MIDI track header (right hand side of the track in the editor). Make the desired MIDI Controller visible. Click “d” to enter “Draw” mode. Click in the automation lane to enter a value. Click “g” to return the default (“grabber”) mode.

Now that track will send that CC value during playback, at the time where the event you added occurs.

Let’s say I have a patch change in a midi track with the following params:

  • Channel 16
  • Program 5
  • MSB 7
  • LSB 2

What I see in the midi monitor is:
16: CC Bank Selection (0), value 7
16: CC Bank Selection (32), value 2
16: Program Change, 4 (Electric Piano 1)

(Yes, the 5 gets shifted to a 4. 10 would get shifted to 9, etc. Not sure if that’s a bug or intended)

Referring to these two pages…

… it appears that Ardour is covering its bases by sending bank selection change control changes (CCs) with the controller function code set to both 0 and 32. Once it has done that, it sends a program change (PC).

What I’m looking to do is send, say, CC8 for “balance” or CC10 for “pan”. You might ask, “ok but why” and the answer is that some pieces of equipment are hardcoded that way.

Example 1: My Line 6 Helix will take CC32 bank change + PC to select a preset. That’s great and it’s what I’m currently doing. But within each preset, it also allows you to send CCX to enable/disable a specific effect which is nice for conserving presets and avoiding an annoying brief silence between preset switchings.

Example 2: A TC Helicon Voicelive product will take a CC110 to activate vocal chorus. (Source:

Can Ardour do this? I have tried and tried but failed to find it.

Thanks for the response and thanks in advance for the next one!

(And yes I’ve been using Ardour 6. Will correct.)

Are you asking about sending 24 bit control messages and/or NRPN ?

Also, if you are actually using Ardour 6 please stop doing that right now … Ardour 6 is not usable for any actual work. The stuff you create will almost certainly not load in a future version of Ardour 6, either during development or testing. If you just meant to write “Ardour 5.12”, then please carry on.