Send CC and Program change MIDI Messages using Computer Keyboard key

Is there a way within Cantabile to generate a MIDI program change (or CC message) from a computer keyboard key, specifically, press 1 for ‘prog change 1’, press 2 for ‘prog change 2’, etc for a handful of changes. I guess this would need to be be tied to the MIDI generated by the Cantabile on-screen keyboard.

Alternatively can a program change be triggered from the bottom notes of the MIDI controller

I have looked at tools like the Insert Piz but can’t find anything obvious


Hi Chris and Welcome to the Forum!

To begin with what version of Cantabile are you running? It will help us to answer better. There are features not available on the free version that would affect the answer.



Thanks for the quick response. I’m running V3 Solo, although I’d be happy to upgrade to V4.

OK, I think V3 had what you needed as a binding. If not V4 should for sure. The bindings for your number key to PG change would look like this. The Event field is programmed by simply pressing the appropriate number key on the PC Keyboard. The PG change destination and value of of course whatever you want them to be.

To use Note inputs to do the same thing you would have bindings that looked like this.

I hope this helps get you started on it. :slight_smile:



Thanks again and I have just been trying this. On the source side of the buinding, I can select PC keyboard and Event (and define the key press) and this works fine.

On the Target side, I am struggling. I can’t find a target option with Program Change as an action. I can select a VST (e.g. Pigments) as the Target, and there are then many VST specific options available as Actions which I can map to the key press, but program change doesn’t appear to be one of them. The screenshot above shows ‘Output Port - External Synth’ as the target, but non of my input or output ports show as options in the target column. I feels like I have missed a step somewhere, or maybe I do need V4.

Hey Retro,

To do a Program Change (PC) with a binding, select the source first, then the plug-in or other object (target) that can respond to a PC. Usually, you can select a target by name or index number. After choosing the object for the target, in the next column over you should be able to select several different activities (run/stop, Next Program, Previous Program, Program/Bank, Gain, etc. Choose Program Change and enter the patch number n where n = 1-128. If you need to provide the bank, It will be b.b.n where b=bank 1-128. Ex, 1.2.5 Bank 1.2, program 5. It may take a little fiddling because some devices start number at zero and others at 1.


Hi Chris,

In the Target list you have to choose where you want to send the PG change to before the option for setting the PG number would appear. as you see in the picture I have a lot pf targets I could choose. I assume you are either sending PG changes to a VSTi or to and external MIDI port and on to a Hardware synth or keyboard.

So for an example of steps to set the target so the the PG change option were to appear I would do these steps

Select my target (must be a MIDI route target) In example I chose external synth.

In this example I chose a VSTi


Then you open the action hamburger menu and you will see the PG choice.

Then you can set the PG number change.



Thanks Dave & RackedBrain, Dave’s screenshots show MIDI ports options in the Target column but for some reason I do not see any in mine.

I wondering if it is because I am still using Cantabile 3 as I know a lot has been done around bindings in V4. Perhaps it is time to upgrade.

Hi Chris,

At this point I recommend you send an email describing your situation to Brad. It is odd that you don’t have access to MIDI ports as targets. Include the version number. Please let us know what it was.


Is this not a limitation of Solo vs Performer? Just wondering, because from the docs it is not obvious. I seem to remember that MIDI->MIDI bindings were not available in Solo but it is not clear to me if sending a PC to a plugin falls under this binding “class”.


1 Like

Correct - this is what used to be called “Triggers”, I believe. As I understand it, sending MIDI directly to plugins via bindings is a Performer-only feature. Same with rack states and song states, so to do what the OP is intending in Cantabile only, you’d need the Performer edition.

Alternatively, there are tools like Bome’s MIDI translator that can translate keystrokes to MIDI and vice-versa, but that would a) cost you money (59 EUR for the pro version of MIDI Translator) as well and b) be quite a hassle to sort the keystrokes between Cantabile and Bome

Easiest way would be to upgrade to Performer and be done with it - it’s definitely worth it…


Thanks Guys, I always get that wrong, will do better. :smiley:

Solo is supposed to have filters and bindings:

Yea, that is the “not clear” part that Gabriel mentioned and that Torsten corrected the record on. The bindings set for Performer has binding points not available in Performer. Not sure how @brad could make that more clear in the comparison chart but I think it would help.

Maybe filters will work in Solo. It takes two steps/filters. Convert note to CC then CC to Program Change.




Have to have two filters for every program change.

When note is pressed, CC14=127. When released CC14=0
When CC14= 127 received, convert to PGRM 1
Discard the CC14=0 that is sent from note-off event


Thanks Easteelreath, that works perfectly for the MIDI key select option.

Thanks for everyones input on the PC key select option. I am pretty sure from the evidence that Torsten is correct and I will need to upgrade to Performer if I want to use this method. I sent an email to support before seeing Torsten’s response but suspect they will confirm this.

That gives me two choices, and a better understanding of Cantabile.

@brad, what about a “Note to Program Change” in midi filters? I think it’s easy to do.

Yep, shouldn’t be too hard. Logged here.


I’ll update that page to more clearly explain the difference between Solo and Performer, but basically:

  • Solo supports bindings from incoming MIDI to most settings in Cantabile/plugins.
  • Performer also supports binding from things in Cantabile to other things in Cantabile as well as bindings that generate outgoing MIDI.



Ultimate would be ability to map a note to the same choices in the MIDI Controller Map Filter. Basically the From: would be a note or list of notes.

Notes are on off, so one could assign on/off values to the range with no curve between the end points. Or when the input note is a range, proportionally vary over the note range like the Note to CC filter.