Novation Launchkey Mini MK4 (25 Key) - Cubase Script Quick Controls

Hello!

I purchased this wonderful keyboard, and am thoroughly enjoying it except for one small thing:

Current State:

  • Switching to the Plugin Encoder page (Shift + Pad 1) makes it so that I can access Quick Controls for the Selected Track

Desired State:

  • I want to have the Encoder page access the Focused Quick Controls instead of Selected Track.

When trying to manually map these bindings in the MIDI Remote Editor, it pretty much breaks the other encoder pages. Essentially making all the Encoder Knobs change the Focused Quick Controls.

I’m using the script recommended by Novation per here: https://support.novationmusic.com/hc/en-gb/articles/20225881390482-Using-Launchkey-MK4-in-Cubase

I’ve also tried going into the JS file of the script and making modifications myself (which fail :frowning: ), as follows:

  • I went into the host_bindings.js file and changed the line:
page.mHostAccess.mTrackSelection.mMixerChannel.mQuickControls.getByIndex(
        quickControlIndex

to

page.mHostAccess.mFocosedQuickControls.mMixerChannel.mQuickControls.getByIndex(
        quickControlIndex

I know this is wrong, and it could never be that simple, but it was worth a shot. I haven’t spent a lot of time going through the API (API Reference | MIDI REMOTE API) in depth, but I’m sure this isn’t too complicated of an ask. Or maybe it is idk…

Another solution I thought could be cool is using the Subpages, while in Plugin Mode, to switch between Quick Control modes (Selected Track and Focus Mode). Similar to what happens in Mixer Mode when changing the Subpages changes EQ, Pan and Volume controls.

I’m hoping this somehow gets the attention of someone at Novation to update their script per my above suggestion. Else, in the interim if someone could please help me, point me in the right direction or by some miracle just provide me with a God-tier script which does what I want, I would be incredibly grateful.

Thanks in advance!

Specs:

  • Cubase 13.0.50
  • macOS Monterey (12.7.6)
  • MacBook Pro 14’’ M1 Chip

Hi,

I can see, there is only the Default page, isn’t it?

So this means, you want to change only encoder 1 from QC1 to Focus QC1, but keep encoder 2 on QC2, right?

As you can see in the code, all QuickControls binding is done in a loop for all 8 encoders at once here:

  // Bind each encoder to one of the quick controls
  var maxQuickControls = 8;
  for (
    var quickControlIndex = 0;
    quickControlIndex < maxQuickControls;
    ++quickControlIndex
  ) {
    var quickControl =
      page.mHostAccess.mTrackSelection.mMixerChannel.mQuickControls.getByIndex(
        quickControlIndex
      );
    var encoder = ui.encoderSection.encoders[quickControlIndex].mSurfaceValue;
    page
      .makeValueBinding(encoder, quickControl)
      .setSubPage(subPages['Quick Controls']);
  }

You can start the loop not from index 0, but from index 1. And make the index 0 individually:

  for (
    var quickControlIndex = 1;
    ...
  }

page.makeValueBinding(ui.encoderSection.encoders[0].mSurfaceValue, page.mHostAccess.mFocosedQuickControls.mMixerChannel.mQuickControls.getByIndex(0))

Hi Martin,

I want to make all the encoder knobs use Focus Quick Controls by default instead of Selected Track Quick Controls.

I hope that clarifies?

Hi,

Then this should work:

And also I would expect this is the expected result:

So what is wrong on these, please?

There’s no object with this name.

The proper binding is

var quickControl =page.mHostAccess.mFocusedQuickControls.getByIndex(quickControlIndex)
1 Like

Thank you so much, this works perfectly!!