Assigning MIDI controller knob to MIDI channel number changer

Great that it works. What are the messages that you get from the controller? I looked at your screenshots, but could not see any repeated messages. Can you post a midi monitor screenshot where you presses the button four times?

1 Like

So this is weird… apparently it’s not the controller. Something with the configuration.

What if you try from scratch and create a new song, add the plugins you need, set up the routes from the input to the plugins, and then add the bindings? Just to see if that will work.

1 Like

I’ve just tried this, in miniature, with a ReaJS MIDI Effect, to make a 3 note arp. I routed the MIDI Out from there to Korg M1 Le (free version), and routed the on screen keyboard to ReaJS. FWIW, I also only have the Solo license.

I then created a binding on the route from ReaJS MIDI Out to Korg M1 Le, and assigned the virtual Sustain button of Virtual MIDI Keyboard (which doesn’t have any other buttons). And, yes, a full cycle takes 4 presses.

The reason is that the binding is actually to the Sustain On event, and the action of the binding is a toggle, so it toggles the route on or off each time it gets sent a Sustain On - but that button also acts as a toggle, so every other time I press it, it sends a Sustain Off, which doesn’t do anything to the route.

So, lets assume the route is currently disabled and Sustain is currently off on my virtual keyboard;

Press 1: Sustain goes on, from the keyboard - it sends Sustain On (CC 64, value 64 or greater).
The Route turns on.

Press 2: Sustain goes off, from the keyboard - it sends Sustain Off (CC64, value 0)
The route remains off, because that’s not what the binding does - it only responds to Sustain On.

Press 3: Sustain goes on, from the keyboard.
The Route toggles to off.

Press 4: Sustain goes off, from the keyboard
No effect on the route.

Press 5: Sustain goes on
The Route toggles to On.

Substitute your own toggle CC button, but that’s what’s happening - the binding isn’t to the button, it’s to the event where the button sends a value of 64 or more, which is every other press, if it’s a toggle button on the controller.

One of the alternatives we have is to change the binding to On or Off, instead of Toggle. So one way might be to have separate buttons for On and Off, and have the controller set fixed values.

A better way is to change the type of the binding to Controller (Switch):

That seems to work fine - the state of the route toggles with each button press. The initial state might not match though, so it might still take two presses on the first attempt.

2 Likes