Cantabile now supports Controller Bar bindings so you can now create bindings that interact directly with the buttons on the controller bar.
In order to create bindings to/from a controller bar button you first need to give it a name.
Right click on the button and choose "Customize...", or right click else where in the Controller Bar and choose "Add Button..." to add a new button.
In the "Binding Name" field enter any name you like.
You'll also notice the Action field can now be set to "None (bindings only)". This creates a button that doesn't perform any actions on its own but can be controlled through bindings.
Now the button has a name it's available in the binding editor.
Create a new binding
For the "Object" of the source or target side of the binding, choose "Controller Bar".
For the "Point" choose the action of the button you want to control or respond to.
In the "Button" field type or choose the name of the controller bar button. This should match the name you entered above for the "Binding Name" on the button.
For example, here's a binding that will set the master output gain to 0dB when a controller bar button is clicked:
Available Binding Points
The controller bar buttons support the following binding points:
Button Caption (source/target) - the caption displayed on the main part of the button. When used as a source any variables will be unexpanded.
Button Color (source/target) - the color of the button
Button Tip (source/target) - the tip text displayed just above the main button. When used as a source any variables will be unexpanded.
On Clicked (source) - fired when the button is clicked (press + release)
On Pressed (source) - fired when the button is pressed
On Released (source) - fired when the button is released
Value (source/target) - the value of the button (or slider)
Click (target) - when invoked by a binding, simulates clicking the button
Thanks @brad looks greats! Are there any plans to incorporate buttons/sliders into the WebUI? I use a touchscreen laptop to remotely control Cantabile, and it would be immensely helpful to have a tab where custom bindings could be added and triggered.
For listening to buttons itās not much different except you donāt need to route a MIDI controller and then bind from that.
But it also allows the reverse controlā¦eg: a binding setting the color or text on a controller bar button.
Possible. Not sure on timeline though. Coincidentally, right now Iām also working on a new front-end web client framework for another project and while working on it, it occurred to me that it would be a great framework for Cantabileās Web UI. If I was to swap over to it, then Iād also be considering some new functionality to make it worthwhile, and remote sliders/buttons would definitely be a consideration.
Nice! Iāve been poking around on this for a couple of days. Is there a way to use States to control the Controller Bar Bindings? Or remember the settings and such? Like if a button had a pop up fader.
(Nothing related to the deep philosophical question about āwho controls the controllersā )
Not directly, but it depends what you want to do. eg: you could use State On Load binding to invoke actions on the controller bar, or use states to enable/disable bindings that are responding to actions in the controller bar.
Struggling with getting Controller Button caption to change when the button is clicked.
It works when addressed by MIDI as per this screen shot. When MIDI is received, the button swaps its caption from āupperā to ālowerā.
What does the second binding look like on source? Is it the Onscreen Keyboard(Out) or the Controller Bar source? Also, it seems to me that it would have to be a toggled switch or a slider for the source or it wouldnāt work. This example toggle switch binding does work FWIW.
Ahh - the cavalry comes over the hill
Dave, I think this is probably tied to the onscreen keyboard. I use it only for occasional testing but never include it in bindings or as a source.
I now have tweaked the binding as per your example, (my CCs of course) and when tested from the binding window, it operates correctly.
I cannot get the actual Controller Bar button to respond when clicked, apart from the color change which is handled on another binding.
So, the situation is, a MIDI button has been configured as part of a 5 binding group so that color and text change, along with the required Cantabile routing targets, which respond correctly.
The missing piece of the puzzle is to have all of that happen if I mouse click on the controller bar button. I foolishly assumed that that button could address its own caption when clicked, but that doesnāt work.
Iām not sure I understand the concept of why the onscreen keyboard is crucial to this task, and why I aināt getting it in any event.
Thanks as ever!
OK, the onscreen keyboard acts as a buffer that can store CC values. in your use case the CC value you want to store is the same as the button producing the CC message so confusion occurs. In this (non Toggled) example I suggest that you use an unused CC to store the value that is different than the CC that is being sent when you press a controller bar button. This second CC value acts as the memory storage for the label display choice. So you would need 2 bindings to do it. First the momentary swt to toggle swt binding. It receives CC45 momentary switches and produces a CC46 output that sequences from 0 to 127.
Thanks for your help Dave. Iāve created bindings as shown and I still cannot mouse click onto the Controller Bar button and achieve any text change. When I test the expression binding from its window, it works. Just canāt translate that into a mouse click on the Controller Bar button.
OK(in) bindings, Source CC98 Target CC99 Mapping Automatc 0,127
Expression OK (in) Source CC99 Target Button Caption etc Mapping, as prescribed.
I think your other external control binding that does work must be conflicting somehow. Can you either send me your song file you are testing with or post the external binding that is related to this button and itās text changes?
Well @dave_dore gets there again.
I missed configuring the controller bar switch midi return.
One little sync issue but, thanks to Dave, I understand more of the process.
Exceptā¦ I donāt understand more.
I thought I could simplify my captioning issue for another scenario - where midi keys switch the caption. As there is not a switch required at the expression, just a text output bound to a midi note, I tried removing the second part of the text, from the colon onwards. That fails. I faked it by making both sides of the colon=the same text,
Input > 1 ? āmy messageā:āmy messageā
but thatās cheating, even though it works.
Tried Input == āmy messageā to no avail, along with other sundry guesses.
What is the syntax for issuing a text string?
Feeling dumb.
I think this is what you need. A MIDI key note triggers the display of a Caption on a ābinding namedā controller bar button. Just put the caption in Quotes in the Result box.