RFC: Binding anything to anything


I am having a similar problem except my values all revert to zero no matter what I try to send as a banked Program change.

CC0 value 0
CC32 value 0
Prog change 0

I am getting the hang of using the new bindings approach and like it so far, great work @brad!

Regarding “Fixed - problems with binding Banked Program Changes”, this now works nicely for me, sending the correct bank and program numbers as expected. However, I notice that for a bank.program entry in the bindings, although the program value obeys the zero/one-based preference, the bank does not, and I’m sure it did in the versions before the new bindings changes, as values I used to see of 8.40 now look like 7.40. Not sure if this is by design or a minor bug.

Either way, thanks for fixing the sent bank/program numbers so quickly, Brad!


Hey @Neil_Durant

Cantabile has always used zero based bank numbers. If bank numbers used to be displayed 1 based that’d be a bug - or at least not intentional.

Glad to hear bindings are working better now.


1 Like

Suggestion - how about a new binding source type for triggering things off (computer) key presses in Live Mode?

Or alternatively, being able to assign a (computer) key binding to the controller bar custom buttons would be useful. Basically I’m really keen on being able to use a computer keyboard (or small USB keypad) to trigger/control stuff in Live Mode.


I think I may have noticed another little buglet with the new bindings.

Before the new bindings work, I had a binding and a trigger set up to run an external script on reception of a MIDI controller. This has mapped into two new bindings, which I guess I can now collapse down into one direct one, cutting out the custom trigger event in the middle, which is nice. However, I’ve noticed that the external script field is blank, lost in the conversion by the look of it.


Another possible problem - I have a binding set up so that on reception of a certain MIDI note, Live Mode is toggled (Target = View, Live Mode, value = Toggle). When the binding is triggered, nothing happens. However if value is set to On, or Off, it does what you’d expect. Should toggling work? It did prior to the new bindings work.


Thanks @Neil_Durant,

I’ll check out the issues.

As for keyboard control, yep that’d be nice and I was tempted to put something like this in but want to hold off on it a little and think it through a little more. I suspect this might tie in closely with other custom on-screen UI control work and don’t want to jump the gun and make things more difficult later.


1 Like

One more thing about bindings - I can set “Note” as a source event, but it would be really nice to be able to specify Note On or Note Off, to allow you to have a binding for each, with a different action.

I have an Akai LPD8 (basically a bunch of buttons/knobs), and a button can be set to toggle, so when pressed it lights up and sends a Note On, and then when pressed again the light goes out and it sends a Note Off. Having separately bindable Note On/Off would open up some useful control functionality.


1 Like

New build 3185 addresses these issues.

1 Like

Note on / Note off as source events would be really nice for me too. I control our light with cantabile and often thought about controlling it at some passages of the song directly while playing, but the note off event was missing to achieve all goals.

1 Like

Been away from the community since June but liking what I’m seeing here.

Am particularly interested in binding/triggering based on transport position. Compared to many of the “power users” here I’m doing basic stuff (use Fishman Triple Play guitar MIDI controller) with no outboard MIDI equipment. HOWEVER, every one of my songs has plugin, etc… changes based on song position, so this is HUGE for me.

Thanks Brad, for continually making a great product even better!


Hello Brad,
I made several songs in Cantabile v3177 in which I made certain bindings. Among these bindings, there are linked some touch pads of a MIDI controller to play / pause some players. That was easy to do, just clicked “ad binding” - “learn” then strummed my pad and Cantabile did recognize it. Then the player did work fine.
In newer versiones (3186, 3187) Cantabile recognizes my touch pad from “learn”, but the linkings do not work (a message “invalid binding” appears). The suggestion of Cantabile is to select “controller button” or " controller no edge button". If I do that, the message “invalid binding” disappears but the Media Player still does not respond.
Any suggestions or topic to solve this?

Hi @Solcito

Can you post a screen shot of a sample binding that’s not working.


Hi Brad, here I attach a snaps ordered by time. The name of the pictures explains each situation.Media Player binding failed.zip (107.2 KB)

Hello again Brad,
I just installed v3188. The media player bindings only work with “controller switch” event selected. But they do not work when selected the events “controller button” or “controller No edge button”. In v3177 all of that events work ok.

Hi @Solcito

What kind of controller are you binding to? Is it a button and what is it sending on press vs release?

  • If it’s a momentary button sending 127 on each press and nothing on release you should choose “Controller (Button No Edge)”
  • If it’s a momentary button sending 127 on press and 0 on release you should choose “Controller (Button)”
  • If it’s a push on/push off button sending 127 when on and 0 when off, you should choose “Controller (Switch)”.


Hi Brad,
I am using touch pads (please see the attached picture ) from an Akai MPK Mini.
Regardless what kind of controller these are:
In v 3176, all of them work fine with all “controller…” type, except “controller (fine)”.
In v 3188, they work with “controller (switch)” only. The other controller options do not work.

Yes that’s correct (possibly).

Before these latest bindings changes Cantabile automatically treated “Controller” as “Controller (Button)” in some cases. That logic was removed in the new bindings implementation and now you must select the correct button type.

However… given that you’re saying that “Controller (Switch)” works and the type of button you’ve shown there could still be something wrong here.

Could you please do this:

  1. Start Cantabile and go to Options -> Diagnostics
  2. Turn on “Console Logger” and “Log MIDI In Events”
  3. Close Options
  4. Press and release one of these buttons and take note of which CC values appear in the console window for press and release.

Let me know what it’s sending and a screen shot of your bindings and I’ll check it out.


I’m a little surprised, I tried to make these bindings in a different set list that used previously, and everything works fine … I fetch data “console logger” and I will post again.

Sorry, do not attend the last post … I forgot I have installed the v3176, which allways worked fine … I’ll reinstall v3188 and I’ll post again.