hostMixerBankZone & subPage problem

When I’m on subPage1 everything works as expected, meaning that encoders 1-8 get the right value. But on subPage2 encoders 1-7 get again subPage1’s values and only encoder 8 is updated to subPage2. So, what I’m missing here?

var hostMixerBankZone = page.mHostAccess.mMixConsole.makeMixerBankZone('Host Mixer Bank Zone')
    .excludeInputChannels()
    .excludeOutputChannels()

var numStrips = 8

for (var stripIndex = 0; stripIndex < numStrips; ++stripIndex) {
    var hostMixerBankChannel = hostMixerBankZone.makeMixerBankChannel()

    var subPagesArea = page.makeSubPageArea("subPagesArea")
    var subpage1 = subPagesArea.makeSubPage("subpage1")
    var subPage2 = subPagesArea.makeSubPage("subPage2")

    page.makeValueBinding(knobs[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mPan).setSubPage(subpage1)                               // encoder 1-8 rotate
    page.makeValueBinding(buttons[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mEditorOpen).setTypeToggle().setSubPage(subpage1)      // encoder 1-8 push
    page.makeValueBinding(knobs[stripIndex].mSurfaceValue, hostMixerBankChannel.mPreFilter.mGain).setSubPage(subPage2)                          // encoder 1-8 rotate // toggle
    page.makeValueBinding(buttons[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mMonitorEnable).setTypeToggle().setSubPage(subPage2)   // encoder 1-8 push   // toggle

    page.makeActionBinding(sideButtons[0].mSurfaceValue, subPagesArea.mAction.mNext)   // button to toggle subPages

For a start, take the subPages creation statements and the subPage button browser out of the loop:

var hostMixerBankZone = page.mHostAccess.mMixConsole.makeMixerBankZone('Host Mixer Bank Zone')
    .excludeInputChannels()
    .excludeOutputChannels()

var numStrips = 8

var subPagesArea = page.makeSubPageArea("subPagesArea")
var subpage1 = subPagesArea.makeSubPage("subpage1")
var subPage2 = subPagesArea.makeSubPage("subPage2")

page.makeActionBinding(sideButtons[0].mSurfaceValue, subPagesArea.mAction.mNext)   // button to toggle subPages

for (var stripIndex = 0; stripIndex < numStrips; ++stripIndex) {
    var hostMixerBankChannel = hostMixerBankZone.makeMixerBankChannel()

    
    page.makeValueBinding(knobs[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mPan).setSubPage(subpage1)                               // encoder 1-8 rotate
    page.makeValueBinding(buttons[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mEditorOpen).setTypeToggle().setSubPage(subpage1)      // encoder 1-8 push
    page.makeValueBinding(knobs[stripIndex].mSurfaceValue, hostMixerBankChannel.mPreFilter.mGain).setSubPage(subPage2)                          // encoder 1-8 rotate // toggle
    page.makeValueBinding(buttons[stripIndex].mSurfaceValue, hostMixerBankChannel.mValue.mMonitorEnable).setTypeToggle().setSubPage(subPage2)   // encoder 1-8 push   // toggle

}
    
1 Like

Indeed. Thank you.