Cantabile now supports a new MIDI filter for mapping a single program number to another. This can be useful when you have a set of footswitches or buttons that are preconfigured to send a particular program number and you want to map those program numbers to specific patches on a plugin.

The Program Map MIDI filter is almost self explanatory — when it sees a particular program number it converts it to a different program number. There are however a few tricks to it.

Program Swapping Works

The first thing to note is that once a Program Map filter is matched, any consecutive program map filters are skipped. This lets you do program number swapping:


  • Remap program 1 to 2
  • Remap program 2 to 1

You might be tempted to think this wouldn’t work correctly but it does because if an event matches the first filter the second one is automatically skipped.

Banked Programs

This filter also works with banked programs as shown here:

If you specify a bank number on the source program number then the bank and program number must match. If the source program doesn’t include a bank number (ie: it’s set to zero) then the filter matches the program number regardless of the currently selected bank.

Similarly for the target program — if you include a non-zero bank number the filter will send the bank number ahead of the new program number.

Suppressing Program Changes

Finally, you can suppress specific program change events by setting the target program number to blank. Any program number matching the source program number (and optionally the source program bank) will be suppressed.

This is available now in build 3167 and later.