Akai MPK 261 - Midi Remote Script and Control Banks

Hello Dear Forum Users!

I have a problem using Akai MPK 261 knobs, faders and sliders in Cubase 14 Pro in a file with more than 8 Tracks and kindly asking you for any help or solution.

Sometimes “Akai Slider 1” moves “Cubase Fader 9” and after Cubase restart, the same “Akai Slider 1” moves “Cubase Fader 1”. In both cases the same “Akai Slider 1” moves only that specific Cubase Fader, no matter which “Akai Control Bank” I select.

There are A, B and C Control Banks on Akai MPK 261 - enabling 3 x 8 Sliders / Faders / Knobs - so esentially it should be possible to control 3 settings on 24 Cubase Channels.

I tried to find similar issue with a solution on Forums and after I didn’t find anything - I tried to find out the cause of it myself.

I’ve checked the JS script and found “controlLayerControlBankA, …B and …C” Variables - so I assume the Multiple Banks Support is there, and the Midi Remote Script functions correctly. Unfortunately my Midi JS knowledge is not good enought and I don’t have the Tools to debug the script in any way.

I went back to Cubase and opened “MIDI Remote Mapping Assistant”. There I found that each Slider, Fader and Knob have 3 Mappings records per Slide, Fader and Knob - as expected.

What I didn’t expect is, those 3 Records have the same Cubase Function - so all of the 3 “Akai Slider 1” records have the same Values = Volume (Channel 1 (Track 1) | Mixer Bank Zone). I would expect 3 different Records for Channel 1, …9 and …17.

Then I moved the same “Akai Slider 1” multiple times, switching between Banks, A, B and C - and interestingly, the Cubase Mapping Records were changing accordingly - although the rows had the same Values - which probably caused the movement of only the “Cubase Volume Fader 1” all the time.

As I described this issue and reading it, I thought there must be some process that maps the Channels to those HW Controls - which maps only Channel 1 to all of those 3 Sliders, but I would need and appreciate any hint on this from someone more familiar with Midi Mappings and Midi Scripting.

Hi,

These are MixerBankZones. You can move the bank zones by 8 channels.

Just checked the script for the MPK 261. The faders of every bank, handle the volume of a mixer bank zone as @Martin.Jirsak mentioned, the buttons handle the mute state of this zone, while the knobs, the focused quick controls.

If you ask whether this can be expanded, to handle 24 tracks by using the 3 layer banks, yes, it’s totally doable. Not from inside this script necessarily, since it’s a “Public” one, overwriting whichever changes we make. But a “Local” one can be made. That of course if you really need a 24-tracks mixer bank zone.

Thank you @Martin.Jirsak and @m.c!

@Martin.Jirsak: Could you please explain, how do I “move the bank zones by 8 channels”? I thought the bank zones would move using the “Control Bank A, B and C” buttons on my controller - which in my case unfortunately do nothing.

@m.c: Thank you for checking the Script. I took a look at the Manual and few videos to learn more about “Focus Quick Controls” and by now already successfully tried them out - so thank you for mentioning them!

After a while … more Manual, more videos, more thinking :slight_smile:

I discovered selecting any channel on the MixConsole, numbered from 1-8 causes HW Sliders to control SW Faders 1-8 and if I select any channel from 9-16, HW Sliders move SW Faders 9-16. So those are probably “MixerBankZones” you were mentioning. I can also move between Channels using “DAW Control” HW left/right buttons - which are quite convenient.

If I understood all that correctly by here, I assume “expanding the MIDI Remote Script functionality to handle 24 Tracks” would mean extending the existing JS (writing some code) to support “Control Bank A, B and C” HW buttons to select the corresponding “MixerBankZone”, right?

As I usually work with 15-20 Tracks at a time, and keep them organized, I see some advantage of being able to control the Tracks directly from Controller - but then again, I don’t use Channel Faders, yet (I do adjust Track Volumes using Pre-Gain and FX Gain correction, after applying FX), and I use Solo button more often then Mute (which could probably be swapped in a Script).

If I decide to create Local Copy of a Script, how would I load the Script into Cubase - since it asks for a .midiremote file, and the Scripts are .js files? What would I need to do, generally? Do I need to create new functions/methods, or extend the existing ones?

Midiremote files are not really necessary, if you understand the folder structure needed.

All MIDI Remotes are saved at the location [yourDocumentsFolder]/Steinberg/Cubase/MIDI Remote/Driver Scripts.

In this folder (Driver Scripts) we see two sub folders, one Public and one Local. Public stores the remotes provided by Steinberg when installing Cubase. Local is the one for storing custom (user) MIDI remotes.

Inside these folders (both Public and Local) you may notice sub-folders with names of manufacturers, for e.g. Akai, Novation, etc. Inside these sub-folders, you will see sub-folders with their name being the name of the controller (model) of this manufacturer.

For example, in your case, under Public, you will see the folder akai, then the folder mpk261. This is the folder where the midi remote file (either a js or a json) is stored.

Still, in order for the MIDI Remote API to identify it, there is a constraint to the name of this js (or json) file name. It should be formatted as Manufacturer_model.js (or json), where model is the name of the sub-folder and Manufacturer the name of the folder one level up. So, in your case, the javascript file for the remote, is named akai_mpk261.js.

Here’s a midiRemote file I’ve made, so you can give it a try. It will handle a mixerBankZone of 24 channels, where the first 8 are mapped to your Control Bank A, the next 8, to B and the last 8 to C.

Akai_MPK261 Custom.midiremote (4.8 KB)

Steps to take:

  • Open Cubase
  • The MIDI Remote Surface for the MPK261 (the one offered by Steinberg) should be automatically recognized and activated. Press on the down-arrow at the top-right section of the MIDI Remote Window, and choose Disable Controller Script.
  • Open Studio→MIDI Remote Manager, click on Import Script and choose the file you’ve just downloaded. If everything went well, you should now see the custom version of the MPK 261 I’ve prepared activated.
1 Like

Thanks a ton for detailed explanation and The File @m.c ! I’ve just imported your new Script and it seems to be working flawlessly.

If I got this all correctly, in case you’d sent me a .js file, I could have just copied it into ../Local/akai/mpk261 folder and Cubase would automatically pick that Local one.

In my case, I received a .midiremote file ( probably exported in Cubase ) which I was then able to directly import back into Cubase - decompressing it and saving .js file into Local folder.

Yes, if you had previously created these folders there.

If there is a script sharing the same midi ports in the Public folder, Cubase would prioritise it, this is why we need to disable it first.

Thank you for clarification.