Actions and RemoteControls - how can one bind the one or the other no matter what?

Post Reply New Topic
RELATED
PRODUCTS

Post

My controller has some simple buttons using midi noteOn messages and I want an OnOffHardwareLight to represent some Bitwig state on the controller. This works already by using a HardwareProperty and the accompanied setValueSupplier() method on the hardwareLight's isOn() method always showing me the recent state of the mapped control of Bitwig. But when binding the hardwareButton's pressedAction to the target this only works with action targets like track.mute() or track.solo(). The problem I have is when binding my buttons to RemoteControl targets - Bitwig complains "Cannot bind to this target" without any further explanation. I assume I have to convert somehow between a RemoteControl parameter (AbsoluteHardwareControlBindable) and an action (HardwareActionBinding).

Has someone an idea how to tackle this?

Post

heins wrote: Tue Jun 23, 2020 10:15 pm My controller has some simple buttons using midi noteOn messages and I want an OnOffHardwareLight to represent some Bitwig state on the controller. This works already by using a HardwareProperty and the accompanied setValueSupplier() method on the hardwareLight's isOn() method always showing me the recent state of the mapped control of Bitwig. But when binding the hardwareButton's pressedAction to the target this only works with action targets like track.mute() or track.solo(). The problem I have is when binding my buttons to RemoteControl targets - Bitwig complains "Cannot bind to this target" without any further explanation. I assume I have to convert somehow between a RemoteControl parameter (AbsoluteHardwareControlBindable) and an action (HardwareActionBinding).

Has someone an idea how to tackle this?
Which action method are you trying to bind exactly?

Post

For example binding the pressedAction() of a HardwareButton to a mute() (SettableBooleanValue) of a track works fine but not binding it to a RemoteControl of a RemoteControlsPage.

Code: Select all

let b = surface.createHardwareButton("foo");
b.pressedAction().setBinding(someTrack.mute()); // this works
b.pressedAction().setBinding(someCursorRemoteControlsPage.getParameter(0)); // this does not

Post

heins wrote: Wed Jun 24, 2020 4:45 pm For example binding the pressedAction() of a HardwareButton to a mute() (SettableBooleanValue) of a track works fine but not binding it to a RemoteControl of a RemoteControlsPage.

Code: Select all

let b = surface.createHardwareButton("foo");
b.pressedAction().setBinding(someTrack.mute()); // this works
b.pressedAction().setBinding(someCursorRemoteControlsPage.getParameter(0)); // this does not
I am not sure if you can bind a continuous value to a button, I think not. Also it might not work to bind the parameter itself, try param.value () instead.

Post Reply

Return to “Controller Scripting”