If you inspect my script, you’ll see that I have separated the faders’ subPages, from the mute/solo and rec/select ones. This way we will avoid building up combinations.
The faders based on the way you want the F1-3 buttons to work, should have 3 subPages, and this is fine (though I don’t see why to limit and at the same time complicate things with the approach of having 24 tracks instead of the 8 our console actually serves, but I totally get the idea behind this).
Now, the mute/solo options should have their own 2*3 subPages: 3 for solos and 3 for mutes, 1 solo and 1 mute for each “bank” of 8 of our set 24 tracks bank. Then we need to do the same for the select/arm-record choices.
So, every time we’re pressing F1-3, we should handle these separate subPages for muteSolo and selectRec. Have a look at the lines 183-261 of the script I posted, it can give you an idea of how to deal with these multiple subPages.
Looking at your code… I didn’t realize you could append .mOnValueChange= onto a .makeActionBinding() / .makeValueBinding() call. That should be extremely helpful
Try to read your code as a compiler and think of how it would or “should” interpret it. There’s no typo, no worries. Please take your time and inspect my script on this.
Of course Take your time my friend, I totally understand how confusing it may be when we first deal with an API.
well here’s something i discovered was destroying my entire world…
this code causes chaos:
// two binds .. don't work
page.makeActionBinding(btnFunctions[F1].mSurfaceValue, subpage_FaderBankF1.mAction.mActivate).setSubPage(subpage_FaderBankF1)
page.makeActionBinding(btnFunctions[F1].mSurfaceValue, subpage_RecEnableBankF1.mAction.mActivate).setSubPage(subpage_RecEnableBankF1)
But this (per your example) is working:
// single bind plus function.. works
page.makeActionBinding(btnFunctions[F1].mSurfaceValue, subpage_FaderBankF1.mAction.mActivate).mOnValueChange =
function(context, activeMapping, value, diff) {
if (value > 0) {
subpage_RecEnableBankF1.mAction.mActivate.trigger(activeMapping)
}
}
Ah.
I opened an entire long post about the feasibility of dynamic binding but apparently the answer was here. Bummer, though. A SysEx macro/PLE search would’ve been cool