How to bind host automation parameter on/off (not toggle)?

New Cantabile user here. Apologies if this question is naive or redundant:

I would like to send a midi CC event to my device whenever a certain togglable host automation parameter in Omnisphere 2 turns “on” and send a different midi event whenever it turns “off”. Is there any way to do this in Cantabile?

I tried to create a Cantabile binding for the host automation parameter, but when I select it in Cantabile’s menu of available sources, it only seems to offer a way to detect when the parameter has been toggled; it doesn’t seem to have any way to create a binding that is conditioned on a host automation parameter’s new value (e.g., “on” vs. “off”). Am I going about this incorrectly?

Hi Hamlen and Welcome,

In a binding like you want it should work with a single binding using the toggle option that is available for MIDI Switch type messages.

e.g.

The delay enable/disable switch on the Cheese Machine Delay on/off switch toggles a MIDI CC 0 message with 127 for enabled and then 0 for disabled.

Hope I understood but if not let me know and we’ll see what we can figure out and I hope this helps :slight_smile:

Dave

1 Like

Hi Hamlen and welcome to the forum!

Fundamentally, host automation parameters provide float-values from 0 to 1, so you’ll need to map them to something useful to send to your device via MIDI.

The most simple way is to map the parameter to a CC, so a mapping like this would provide CC1 values of 127 and 0, depending if the switch is on or not.

If you need to send completely different commands and not just different values of a CC to your device, there is no direct way to assign these; this requires a bit of advanced fiddling in Cantabile.

The first way that comes to mind for me is to use the output of a first “mapping” binding as the source for a different binding, using so-called “Loopback ports”. But it becomes a bit more complicated, since you can’t use specific controller values as binding sources:

  • That’s why I use MIDI notes as output from the original switch - this will create note-on events with different note numbers (0 for off, 127 for on)
  • I send these MIDI notes to a “dummy” MIDI input port via a Loopback port - this will make these notes appear as a MIDI input
  • now I use this MIDI input as the source for new bindings that react to the different note on commands:

Here are the bindings:

Now when I switch the Percussion parameter on and off again, I create these events at the “Dummy” port (first binding):

Now the other two bindings create these events at the “External Synth” port:

This way, you can send two completely different MIDI commands to your synth based on the position of your switch.

I admit, this is all pretty convoluted, but if there isn’t a built-in direct solution, you can always find a way around the problem in Cantabile :wink:

Cheers,

Torsten

1 Like

Absolutely !! Cantabile Rocks :metal:

Thank you all for the helpful answers!

@Torsten’s first solution worked for me: Selecting “Controller” as the binding action allows the host automation parameter’s value to be translated to the target, which is what I needed. (I had previously been using “Controller (Switch)” as @dave_dore suggested, which seemed appropriate for an on/off parameter but gets into trouble if the VST param and midi device ever get out of sync. When that happens, the “Toggle” action starts making the device do the opposite of the param, which can be troublesome during a live performance.)

1 Like