Novation MK3 MkIII MC Custom Script Instruction Manual
- June 16, 2024
- Novation
Table of Contents
- Novation MK3 MkIII MC Custom Script
- Full Implementation Setup
- Installation Instructions
- Applies to BOTH implementations
- SETUP
- A closer look
- Sub-section Pregain (Input filter)
- User Pages
- Appendix 4 – States Assignments
- Troubleshooting
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
Novation MK3 MkIII MC Custom Script
Specifications
- Compatible with Cubase version 12.0.50 and above
- Two options are available : FULL and Stripped-Down
- Virtual MIDI ports required for full implementation
- Mackie HUI device must be deactivated to avoid conflicts
Product Usage Instructions
Installation Instructions
- If using the FULL implementation, download and install 2 virtual MIDI ports (e.g., loopMIDI).
- Deactivate the Mackie HUI device in the MIDI Remote Manager of Cubase.
- Import the script by clicking on Import Script in the MIDI Remote Manager and selecting the downloaded script file.
- Make necessary adjustments as needed.
Full Implementation Setup
- Add a new device in Cubase’s Studio Setup and select Mackie Control.
- Assign the virtual MIDI ports (e.g., loopMIDI Port 1 and loopMIDI Port) to the new device.
- Add another device, this time select Generic Remote, and set the MIDI In and Out ports accordingly.
- Import the provided Generic Remote file from the script’s subfolder.
Stripped-Down Implementation Setup
No additional setup steps are required for the Stripped-Down option.
MIDI Ports Setup
- In Cubase’s Studio Setup, go to the MIDI Port Setup tab and uncheck the default MIDIIN2 port (Novation SL MkIII) from the “ALL MIDI inputs” column.
- If using the FULL implementation, also uncheck the loopMIDI ports.
- In Cubase, go to the MIDI Editor tab and click on the plusbutton to add a new MIDI controller surface.
- Fill in the form accordingly and click on the Activate MIDI Controller Surface button.
Important: To access the MIDI Remote’s Interface, press the INCONTROL button on the SL MkIII.
FAQ
Q: Which versions of Cubase are compatible with this script?
A: This script is compatible with Cubase versions 12.0.50 and above.
Q: What are the differences between the FULL and Stripped-Down options?
A: The Stripped-Down option lacks browsing of instruments and effects plugins via the Grid+Knob8 turns, as well as feedback for punch In&Out, Pre- count Metronome, MIDI Record Mode, and MIDI Cycle Record Mode. All other functions are the same.
Q: Can I use virtual MIDI ports other than loopMIDI?
A: Yes, you can use other virtual MIDI ports if you have them available.
Q: How do I deactivate the Mackie HUI device?
A: Open the MIDI Remote TAB in Cubase, click on Open MIDI Remote Manager, and either remove the Mackie HUI device completely or set its MIDI ports to none (Not connected).
Installation Instructions
Warning: This script will not work with Cubase versions below
There are two options in this script, the FULL and the Stripped-Down one. In the Stripped-Down option, the following are missing:
- No browsing of instruments and effects plugins available via the Grid+Knob8 turns.
- No feedback for punch In&Out, Pre-count Metronome, MIDI Record Mode and MIDI Cycle Record Mode
Apart from the above, all other functions are the same.
Applies to the FULL implementation. If you’re going to use the stripped-down version, please skip this step]
If you’re going to use the full implementation of this script, you will need 2 virtual MIDI ports (apart from the default ports of our SL MK3).
For this, I’m using loopMIDI (you can obviously use other virtual ports if you have) and my ports are setup like this:
Applies to BOTH implementations
Important: Please deactivate the Mackie HUI device, in case you have it set for the controller, by either completely removing it, or by setting its MIDI ports to none (Not connected), otherwise there will be conflicts with the script. Open the MIDI Remote TAB in Cubase and then click on Open MIDI Remote Manager:
In the Midi Remote Manager window, click on Import Script:
In the File Dialog, choose the script’s file you’ve downloaded, and Cubase will install the script and its components. The next step is to make some adjustments when needed. [Applies to the FULL implementation. If you’re going to use the stripped-down version, please skip this step] If we do want to use the full implementation’s functionalities, there is another step involved, apart from setting general settings. stripped-down version =0 in the mapOfGeneralSettings.js file
- Setup for allowing changing plugins using our controller:
- Open Cubase’s Studio->Studio Setup, click on Add Device and select Mackie Control. In the ports of this new item, assign loopMIDI Port 1 and loopMIDI port respectively, as shown in the screenshot below, and click Apply.
- Setup for receiving punch Out, Midi Record Mode, Midi Cycle Record Mode and Metronome Pre-Count: Click again on Add Device but this time select the Generic Remote item. Set the Midi In and Out ports as shown in the following screenshot and click on Import:
Browse to the script’s subFolder Generic_remote_file and select the file:
Novation_SL_MK3_MC_Custom_Generic_Remote_For_loopMIDI.xml Hit Apply and you’re done.
Applies to BOTH implementations]
SETUP
MIDI ports setup
From inside Cubase, go to menu Studio-> Studio Setup → Tab Midi Port Setup and uncheck the entry MIDIIN2 (Novation SL MkIII) (this is its default port for DAW control) from the “In ‘ALL MIDI inputs’” column. If using the full implementation, please uncheck the following ports too: loopMIDI Port and loopMIDI Port 1.
Go back to Cubase and after selecting the MIDI Editor Tab click on the big PLUS button:
Fill the form as follows and click on the Activate MIDI Controller Surface button. If you’re going to use the full implementation, you must fill in the form as follows:
Note (again) that this is the full implementation of the script. In this one we are using apart from the SL MK3 Midi Ports (MIDIIN2 & MIDIOUT2), another one set, created by using the loopMIDI utility, available from Tobias Erichsen’s website here: https://www.tobias- erichsen.de/software/loopmidi.html.
If you have selected the stripped-down version (this is the default), Cubase most probably will immediately recognize the connected device and set it up properly. However, in case it does not, you must follow the previous screenshot, but this time, you have to simply select the “MIDIIN2 & MIDIOUT2” ports, the other two will not be visible.
Sections
Important: We enter the MIDI Remote’s Interface by pressing the button of our SL MK3
The script creates the following sections:
- Mixer
- Focused Quick Controls
- Quick Controls (This refers to the instrument’s controls)
- Channel Strip
- Insert Effects
- Send Effects
- Commands Set 1
- Commands Set 2
- Commands Set 3
- Commands Set 4
- Commands Set 5
We can navigate through the various sections using either the big Up and Down arrow buttons of the SL MK3:
or assigned pads as follows:
Here are the default assignments of our 16 pads:
Now, each section has several sub sections. We navigate through these sub sections by using the small Up and Down arrow (the ones to the left of the displays).
Here’s the basic map of the available sub sections per section:
Temporary (sub) Sections
- Apart from the above sections and their sub-sections, we have a set of extra temporary (sub) Sections, I call them Shift, Shift2, Ctrl, Alt, FN, Grid and Options. In order to activate one of these, we have to use Shift (the button at the top-left corner of our controller), Pad 9, Pad 10, Pad11, Pad12, Grid and Options. Here’s the map:
- By pushing the corresponding control, we temporarily activate these sub-sections. The Options sub-section deals with DAW options, and it occupies the 8 buttons below our displays, the pads 8, 9, and 16, the two big right arrows (to the right of our pads), the two small up/down arrows to our faders’ section of the board, and the transport buttons rewind, forward and record.
- The Grid sub-section deals mostly with Grid settings, and when in the full version of the script, it allows us to browse through instruments and effects, by using Knob 8. Especially in the Sends sub-section, we can use all knobs to change send effect for each of the available 8 slots.
- The other sub-sections are assigned to commands. These commands can be found at the file map Of Bindings.js, and you can obviously edit it based on your own preferences. All these sub-sections, (except from the Grid and Options) are assigning commands to Knobs, Buttons (below displays), Pads, AND transport controls. The assignments can be viewed on our display, here’s an example for Shift:
In the top row we see assignments to our knobs. Note that these assignments are dual, i.e., one for each knob’s turn direction. So, for example, the first knob is assigned to navigatingleft/right, while knob 4 is assigned to zooming in/out. In the second row, we see some DAW info (Left/Right locators, current cursor’s position, Metronome On/OFF, Metronome click level, and BPM) The third row deals with actions assigned to the buttons Duplicate, Clear, and the transport buttons, Rewind, Forward, Stop, Play, Loop and Record. Note that the transport elements’ are colored based on our display’s colors in order to help us find faster the assignment. For example, if we press the Clear button, we activate the Delete selected tracks command, as seen in the second column, while by pressing the Stop button, we’re activating the Close All command.
The fourth row corresponds to our buttons below the displays. For example, if we press button 5, we activate the Copy command. Finally, the fifth and sixth rows correspond to our pads. For example, if we press pad 3, we activate the Show all mixer agent, while by pressing pad 9, we activate the Mixer Configuration 1.
Again, please note that you can alter these assignments by editing the corresponding items in the mapOfBindings.js file.
Section Faders
Apart from the above sections, we have another one that covers the faders zone, both faders and the buttons above them. Obviously, we can use our faders, to alter the volume of each of our 8-channel mixer bank. At the same time, the buttons above the faders, are assigned to 4 sub-sections, as seen in the table below:
Again, please note that you can alter these assignments by editing the corresponding items in the mapOfBindings.js file.
We navigate through these sub-sections, by using the small up and down arrows at the right side of our 16 buttons above the faders. Then we can alter the property assigned to each of our 2 rows of buttons which handle our 8 tracks.
A closer look
Section Mixer
Sub section Pan Here we can change the selected track by using our 8 buttons
below the displays and change the pan of these tracks by using our 8 knobs. On
our displays, we can see the pan and volume values, the track names and
(optionally) the plugin names. You can set whether to see the plugin names in
the mapOfGeneralSettings.js file, by setting general Settings. display. plugin
Name=1. At the same time, our buttons are colored based on the colors of our
project window tracks. We have 2 options concerning the presentation of the
selected track. We can have it pulsing or showing in a solid colour. We can
alter this in the mapOfGeneralSettings.js file, by setting general Settings
display. selected Tracks Appearance Option Screens=1 for pulsing or 0 for
solid.
Similarly, we can set our selected track in pulsing or solid mode, in our
faders’ section leds, by setting general Settings .display. selected Tracks
Appearance Option Faders=1 for pulsing, or 0 for solid.
By default, I have set them up to solid for the buttons under the display, and
to pulsing for the leds above the faders. Note that I have made two shortcuts
for toggling these states: By holding Options and pressing the big Right Arrow
1, we toggle the state for the display buttons, while by pressing the second
Right arrow, we toggle the state for leds above the faders.
Sub-section Pregain (Input filter)
Here we can alter the Level of Pre-gain (using our knobs) and whether it’s bypassed or not (using our buttons).
Sub Sections Sends 1-8
Here we can alter the level of our sends and whether they’re enabled or not.
Section Focused Quick Controls
Sub-section FQC In this sub-section we can control the 8 focused quick controls, depending on the plugin currently in focus.
Sub Section Mouse (Knob AI)
Here we can use knob 1 to control the currently focused object on our plugin’s interface and button 1 to lock the focus to it.
Section/Subsection Quick Controls
Here we can control our instrument’s parameters by using our 8 knobs, while our buttons are assigned to Preset Browser, Sound Browser, Navigate Right, Toggle Selection, Create New Track, Track Presets, Navigate Up and Navigate Down. We can use our small up/down arrows on the left of our display to browse through the banks of our plugin’s parameters.
Section/Subsection Pregain (Input Filter)
- Here we have control of our pre-gain level and bypass, Low/high cut Frequency, Slope and states.
- Section/Sub-Section Inserts We can control using our knobs the parameters of the insert effect for each of the 16 available slots.
- We can navigate through each slot, by using the small up/down arrows, while by holding shift, these arrows change the bank of parameters of the selected insert effect. The buttons are assigned to On, Bypass, Read, Write, Show/hide selected insert, Show/Hide All plugins, and Close all plugins.
Section Channel Strip
Subsection EQ
Here we can control the Gain, Frequency of each band, while our buttons control the On/Off state of these bands.
Sub Section EQ2
- Here we can control the EQ Type and Q-Factor, while our buttons are still controlling the On/Off state. Sub Sections Gate, Compressor, Tools, Saturation, Limiter
- We can use our knobs to control the exposed parameter for these effects, while our buttons are assigned to On/Off, Bypass, Read and Write properties.
Section Sends
Sub-section Sends (main)
Here we are controlling the level and the On/Off states for each send slot.
Sub-section Sends 2
Here we are again controlling the level again, but our buttons are now assigned to the Pre-Post properties.
Section Commands
All sub-sections (Commands 1-5)
Here we have assignments to left/right turns of our 8 knobs and our 8 buttons below the displays.
User Pages
All the sections and the sub-sections mentioned above are constructed inside a single object named mixer, and in the Steinberg’s MIDI Remote API language, this object is a mapping page. In every midi remote surface, we can have more than one pages. In this implementation, I have prepared a set of five nearly empty pages, I call them User 1 to 5. These pages have the very basic transport bindings (Rewind, Forward, Stop, Play, Cycle and Record) and a tiny set of Options assignments. We can browse through these mapping pages by holding down Shift and pressing the Big Up/Down Arrows (to the left side of our pads). The cool thing with the user pages is that we have the freedom to assign whichever parameter we want to our controls, without worrying about affecting our main page of the script. Furthermore, it gets even more interesting, because the script “listens” to these bound parameters, and reflects them to our 8 displays, as follows:
Assignments to our knobs can be seen at the top row of our displays, while their value will be seen at the second row, and at the same time update the knob icon on our display.
Assignments to the buttons below our displays will be shown at the third row of our displays, while their values, at the bottom row.
Here’s an example of two custom assignments I’ve made (purely for demonstrating the output to our displays): In this example, I have assigned the TalkBack Level of Cue Channel 1, and the Bypass of Inserts for this Channel. You can see these parameters and their values as described earlier.
Default assignments to transport and other buttons The transport buttons are by default assigned to their natural action, i.e., Rewind rewinds, Forward forwards and so on. Additionally, we have the Duplicate, Clear, Track Previous and Track Next buttons. The assignments follow the closest I could think of, i.e., Duplicate is assigned to Edit- >Duplicate, Clear to Delete, Track Next/Previous to Track next/previous (obviously). Now, by holding Shift we get Duplicate Selected Tracks, Remove selected tracks, Next/Previous Mixer bank. Finally, we have the two Big Right Arrows (the ones to the right of our pads section). The first one is assigned to Undo, while the second one is assigned to Save. By holding Shift, the first one triggers Redo, while the second one triggers Save new version. Again, note that all these assignments are customizable through editing the mapOfBindings.js file.
General Settings
In the file mapOfGeneralSettings.js, we have the general settings which are used by the script. You can modify any entry you wish. I’ve included comments to show what every setting does. You can alter their values to 0 or 1, based on your preferences. Some of the functionalities described earlier can be disabled/re-enabled by changing the corresponding variables’ values (from 1 to 0 for disabling, or 1 from 0 for re-enabling).
Notes considering the commands’ assignments
- Since this is a script that was built based on my personal workflow, I have set up some Macros and Logical Editor Presets, that are used in these command sets, as well as factory commands. You can obviously edit these entries and setup your very own. However, if you want these commands, you have to add them manually, and here’s how: Inside the scripts folder, I have placed two subfolders Logical_editor_presets and MIDI_Logical_editor_presets, containing the logical presets xml files, I use in my implementation. Feel free to import these to your own presets folder if you like them and/or wish to alter them. But, of course, you then have to create the corresponding macros.
- This means that you have to manually edit your commands xml file unfortunately, but it surely can be done with not too much effort (hopefully).
- You can check the instructions inside the file “Instructions for importing my own logical editor presets.pdf”.
-
- Steinberg’s MIDI Remote API follows the convention of Mapping Pages and SubPages, while in this document I use the terms “Sections” and “Sub Sections”. This is because the construction of this script was based on sub pages only, instead of mapping pages.
Appendix 1 – Sections/Sub Sections assignments
Appendix 2 – Grid Assignments
Appendix 3 – Options Assignments
Appendix 4 – States Assignments
Troubleshooting
I’ve noticed that upon transitioning from the stripped down version of the script to the full version or vice versa, occasionally the MIDI ports are not updated as expected. Please follow the following steps when you perform such transitions:
- Open Cubase
- From Cubase’s menu bar, choose Studio -> MIDI Remote Manager
- Navigate to the Scripts tab
- Disable the SL MK3 MC Custom script, by selecting it and clicking Disable Controller Script
- Close Cubase
- Open your file’s browser and navigate to your Documents folder
- Navigate to the Steinberg/Cubase/MIDI Remote/User Settings subfolder
- Locate the file which starts with Novation_SL_MK3_MC_Custom and ends with globalmappings.json and delete it
- Restart Cubase
- You should now be given the option to add a new MIDI Remote Surface, IF of course Cubase doesn’t automatically recognize the MIDI Ports.
References
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>