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?
Actions and RemoteControls - how can one bind the one or the other no matter what?
- KVRAF
- 4898 posts since 13 May, 2004
Which action method are you trying to bind exactly?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?
-
- KVRer
- Topic Starter
- 5 posts since 23 Jun, 2020
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- KVRAF
- 4898 posts since 13 May, 2004
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.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
