[AZ] Native Instruments Komplete Kontrol M32/A25/A49/A61 (Alpha version)

Started by azslow3, June 08, 2022, 09:45:55 PM

Previous topic - Next topic

azslow3

Note: AZ Controller v0.5r11b418 or later is required to use this preset
In the following "KK" is Komplete Kontrol.

Changelog

  • 13.07.22 - v0.6, zoom/template load/placeholder for user commands in Strip mode
  • 20.06.22 - v0.5, single strip mode (control sends)
  • 16.06.22 - v0.4, shift latch for knobs (as tunable)
  • 13.06.22 - v0.3, the first public version

Keyboard overview

The keyboard can be in 3 modes, KK, DAW and MIDI.
DAW controlling mode has sub-modes: Mix (controlling WAI strips) and ACT (control not KK plug-ins).

Cakewalk always has one focused Strip, which can be Track, Bus or Mains. This preset works with Tracks and Buses, when Mains is in focus the keyboard continue working with last focused Track or Bus. (In sub-mode Mix) WAI bank is always 8 strips including focused one. It moves automatically when focused strip is changed, always aligned by 8 from the first strip (visible in configured for surface view, you can set that in Cakewalk preferences). If at some moment that is inconvenient, for example you want adjust volume in sequential strips which are in different automatic banks, you can temporary move WAI by mouse. But as soon as you change focused strip, WAI will be auto-adjusted.

The documentation for MIDI and KK modes you can find on NI site. These modes are the same in any DAW and stand-alone KK (except Transport keys which are in most cases continue working as described in this thread).

DAW mode overview
The following is the table of available for DAWs controls on M32. Note that many buttons can't be used in DAW mode (NI decision).
Also note that all button controls are reported as "activated" (not momentary), touch sensitivity of knobs is not exposed and
current mode is also not exposed.

Feedback is: '-' - no, '+' - LED off/dim, '*' - LED dim/bright, 'D' - display, '(+)' - not on M32.


























M32 Control | NI intention for it | Feedback | Mix | ACT | Strip |
PLAYPlay*Play/PausePlay/PausePlay/Pause
Shift+PLAYRestart-SaveSaveSave
RECRecord*Rec./manual punchRec./manual punchRec./manual punch
Shift+RECCount-in*Toggle rec. armToggle rec. armToggle rec. arm
STOPStop*Stop (at now)/RTZStop (at now)/RTZStop (at now)/RTZ
Shift+STOPClear+---
LOOPLoop*Toggle loop/set loop intervalToggle loop/set loop intervalToggle loop/set loop interval
METROMetronome*Mode switchMode switchMode switch (to Mix)
TEMPOTap tempo-Toggle rec/play metronomesToggle rec/play metronomesToggle rec/play metronomes
UNDOUndo+UndoUndoUndo
Shift+UNDORedo+RedoRedoRedo
QUANTIZEQuantize+Toggle auto-punch/set punch intervalToggle auto-punch/set punch intervalToggle auto-punch/set punch interval
Shift+QUANTIZEAutomation*Toggle write autoToggle write autoToggle write auto
Shift+'<'Mute*/DToggle mutePrev. bankToggle mute
Shift+'>'Solo*/DToggle soloNext bankToggle solo
Knob 1-8Track 1-8 VolumeDWAI 1-8 VolumeParameters (coarse)Focused strip Volume, 4 sends Volume and commands
Shift+Knob 1-8Track 1-8 PanDWAI 1-8 PanParameters (fine)Focused strip Pan, 4 sends Pan and commands
4D Up/DownNavigate tracks(+)Navigate stripsNavigate FX/PC modulesNavigate strips
4D Left/RightNavigate clips(+)Navigate markersSwitch to FX/PC moduleNavigate markers
4D RotateMove transport-JogJogJog
LOOP+4D RotateMove Loop-Set selection intervalSet selection intervalSet selection interval
4D PushPlay clip-Open synth-Open synth
Shift+4D PushStop track-Toggle strip type-Toggle strip type

Donations
Creating such presets not only cost time, I have to pay money for controller. Most attempts to create presets without device in hands was not perfect, the imagination how something works
looking at pictures normally does no match the reality.
If the community send me sufficient for new controller money, I can buy it and try to integrate. So you can Donate with PayPal. Feel free to support that idea.

azslow3

#1
Installation
1. Download and install the latest AZ Controller, with Cakewalk closed (https://www.azslow.com/index.php?topic=6.msg6)
2. Connect the keyboard before starting Cakewalk. Make sure Komplete Kontrol software and drivers are up to date.
3. Make sure Komplete Kontrol or any other software which case use the keyboard is not running. Start Cakewalk.
4. Install attached preset using Cakewalk Plug-in Manager
5. In Cakewalk Preferences, Control Surfaces, add "AZ Controller" and set its MIDI input and output to "Komplete Kontrol M" (NOT to "Komplete Kontrol M32 MIDI"). If you can' select them, check you have enabled them in the MIDI section (and pressed "Apply" after enabling).
6. Open AZ Controller configuration (from Utilities menu or ACT Module and select the preset (NI M32)

MIDI ports

The keyboard use 2 sets of MIDI ports, one is "MIDI" and another is "DAW". NI recommends disable MIDI output port (why?), but MIDI input port should be enabled (if you want play keys, and you probably want). DAW ports must be enabled as described in the installation part, they will not send any events (it make no sense to use it for MIDI track input).
Check in Cakewalk preferences MIDI/Playback and Recording/Record section that all MIDI events you are interested are enabled (at least Notes, CC and Pitch wheel). BTW if you will be annoyed by "mod strip" on the keyboard (it is easy to touch by mistake and there is no visual indication of the fact), solution can be created (also using AZ Controller...).

Keys and strips send events to the MIDI port. The functionality of all other controls depends from currently selected mode.

ACT mapping files
To function properly, Cakewalk ACT data files should be ok, Komplete Kontrol should have no custom maps and there should be no auto-ordering rules.
If you have Sonar installed, the chance these files are ok is almost zero. Also default files have auto-ordering rules.
So in case you have never used Plug-in dynamic mapping before, just remove all XML files in "%APPDATA%\Cakewalk\ACT data". Otherwise you will have
to clear the rules manually...
In any case I strongly recommend to use AZ ACT Fix utility https://www.azslow.com/index.php/topic,297.0.html
It will check your files are ok, allow creating backups to not loose your mapping in case of corruptions as well as edit mappings.
Don't forget to exit Cakewalk when using this utility, using it in parallel is looking for troubles.

Switching keyboard modes
Note: DAW has no idea KK is switching modes.

  • TRACK button switch to the DAW mode. It is bright in this mode
  • PLUG_IN button switch into KK mode. The button is dim when that is possible and bright when this mode is active. Currently the instance is selected based on last instance which was in focus. Till some instance is in focus, the button will be dark. Once some instance was open, Shift+PLUG_IN allows different instance selection and switch to KK mode. But if you return to the DAW mode and back into KK, it will again work with last focused instance. Note that selecting track is currently insufficient to change the instance (Cakewalk limitation), you need focus KK explicitly. In KK mode some controls can still work in DAW mode, that is loaded into KK instrument dependent. (need fix) If there is at least one KK instance in the project, the keyboard can be in KK mode after project loading.
  • Shift+PLUG_IN switch to the MIDI mode. In this mode PLUG-IN and TRACK are dim. Knobs will send MIDI messages throw the same input as keys, read NI documentation for more details

DAW mode

Switching between sub-modes

  • METRO switch between Mix and ACT sub-modes. The button is bright (continuous) in ACT sub-mode. Note that switching into ACT sub-mode can fail (see later)
  • Double pressing METRO set Strip sub-mode. The button blink. Press METRO one time to return into Mix sub-mode
There are not many buttons on M32 which can be switched between dim and bright by the DAW. Only transport buttons have that property. Since other transport buttons indicate important status, METRO was the only logical choice, even so its name is more logical for Metronome switching.

All sub-modes

Transport related controls

  • 4D turn. Navigate by measures.
  • PLAY. Cakewalk Play/Pause Command.
  • REC. Cakewalk Record Command.
  • STOP. During playback and recording, Stop. In pause, Stop at now time (even when Rewind on Stop Cakewalk option is active). In stop, RTZ.
  • LOOP. Toggle Loop. Bright when looping is on. Double press to set loop points to selection and switch on.
  • TEMPO. Toggle metronome during recording, double press toggle metronome during playback (current state indication is not supported by Cakewalk).
  • QUANTIZE. Toggle Auto-Punch. Double press to set punch points to selection and switch on (state indication can make the button dark, so always dim)
  • Shift+4D turn (NI: move loop region). Turning left set Loop from current time, turning right set Loop Thru to current time.

Focused strip controls

  • Shift+REC(CountIn). Toggle Record Arm for current strip (so works in the Track pane only). Bright when armed (when Shift is pressed). If arming, does that exclusive (other armed tracks are dis-armed) and till this control is used for disarming, exclusive mode is active for arming in general (f.e. with mouse). So don't use this button in case you want record multiple tracks (or disable that feature in the preset).
  • Shift+QUANIZE(Auto). Toggle Automation Write for current strip. Bright when automation write is enabled (when Shift is pressed).

Other controls

  • UNDO. Cakewalk Undo.
  • Shift+UNDO(Redo). Cakewalk Redo.
  • Shift+PLAY(Restart). Save project.

Mix sub-mode

SoftSynth control

  • 4D Push. Close current floating FX (if in focus) or (try to) open Soft Synth on current track.

Transport related controls

  • 4D Left/Right (NI: Navigate clips). Go to previous or next marker.

Focused strip controls (Mix sub-mode)

  • 4D Up/Down. Focus next (Down) or previous (Up) strip. Direction match NI idea and tracks view in Cakewalk.
  • Shift + 4D Push. Toggle between tracks and buses.
  • Shift+<(M). Toggle mute for focused strip. Current status is indicated when Shift is pressed and on display.
  • Shift+>(S). Toggle solo for focused strip. Current status is indicated when Shift is pressed and on display.

WAI strips controls

  • Knobs 1-8. WAI 1-8 strip volume.
  • Shift+Knobs 1-8. WAI 1-8 strip pan.
By default display shows focused strip name and volume (when shift is pressed pan). But if some knob is touched, the information for corresponding strip is shown for a while (NI logic).

Strip sub-mode
That is a variation of Mix sub-mode, but for one strip. WAI change indication to single (focused) strip.

Focused strip control

  • Knobs 1. Focused  strip volume.
  • Shift+Knobs 1. Focused strip pan.
  • Knobs 2-5. Focused  strip send 1-4 volume.
  • Shift+Knobs 2-5. Focused strip send 1-4 pan.
Note 1: display always reverts to Volume/Pan of focused strip
Note 2: when controlling buses, send names can't be used (Cakewalk does not return them properly), so display shows generic "Send X" instead.

Commands

  • Knobs 6-7 and Shift+Knob6 are not defined.
  • Shift+Knob 7 (turning right). Insert "KK" track template.
  • (Shift+)Knob8. Zoom. Without shift horizontal, with shift vertical for focused strip.
Note 1: for template inserting, a template with exact name should exist.
Note 2: see tuning section how to add/change commands.

All other controls work like in Mix mode.

ACT sub-mode
FX/ProChannel module in focus can be controlled with Plug-in Dynamic Mapping (AKA ACT). Plug-in stay in focus till some other plug-in or module is focused.
Focus can be changed using any available methods (mouse, keyboard, controllers, etc.).
ACT focus should not be locked for the Instance of AZ Controller with this preset, KK instance tracking will not work otherwise. But other surface plug-ins or AZ Controller instances (theoretically) can be locked (but I have not tested yet).

Plug-in selection on ACT sub-mode activation
When ACT sub-mode is activated, it tries to be "smart" and decide which plug-in you want control. It has the following logic (in the listed sequence):

  • If some plug-in is open, floating and in focus (f.e. you have opened Soft Synth from the keyboard or any plug-in using mouse), this plug-in will be controlled
  • If you was controlling FX or ProChannel selecting it by the keyboard (manually or auto-selected by currently explained logic), there will be attempt to open the same (by number) FX or ProChannel module for focused track. F.e. if you was controlling effect 3 on one track, it will try to control effect 3 for focused track. Falling back to the first effect/module
  • It will try to find FX or ProChannel and control it
  • If no FXes nor ProChannel modules exist on focused track, it will fail to enter ACT sub-mode.
When leaving ACT sub-mode, discovered/selected by/from the keyboard floating FX will be closed.

Choosing plug-in in focus

  • 4D Up/Down loop throw FXes or ProChannel modules of focused strip. That works if plug-in type is know (there was no floating plug-in when ACT mode was activated).
  • 4D Left/Right select first FX/ProChannel module respectively (if they exist).

Parameter banks
Parameters are organized in banks, 8 parameters in one bank, 4 banks in total.
Banks can be switched by Shift+<(M) and Shift+>(S) (previous/next, looping). Current bank is indicated by the combination of S and M (Solo and Mute in Mix mode) on Display.
Note that '<' nad '>' buttons will be dark when Shift is pressed, in case current parameter is not assigned. They still work as expected.

Plug-in parameter controls

  • Knobs 1-8. ACT faders with coarse resolution
  • Shift+Knobs 1-8. ACT faders with fine resolution
Display still show "Vol"/"Pan" indicators, but plug-in parameter name and value are shown instead of track name and volume/pan values. Once some knob is used to change parameter,
it is "focused" and so the information stay. If some knob is just touched, the display reverts to previously changed (by knob) parameter (or to the first).

azslow3

#2
Not usable on M32 controls/feedback

M32 Control | NI intention for it | Feedback | Mix | ACT |






Navigate banks(+)--
Navigate scenes(+)--
Select track(+)--
Arm(+)--
Track 1-8 levels(+)--

azslow3

#3
Preset tuning
While you can modify everything in the preset, I guess for most people that is too complicated. So there I mention easy to do (really explicitly made easy) tunes.

NOTE: you will have to do the tuning every time you re-download my version of preset.

Change knobs "resolution"
If you like parameters are changing "faster" or "slower" when you operate knobs, do the following:

  • Click on Logic tab
  • Select in the "Logical Control" combo-box _fSetParByKnob (it is at the beginning of the list)
  • Click on "Endless User Accelerated" Action in the "Actions list"
  • In the "Action configuration" you will see "0.6% per tick", try select other values
For "fine" adjustments in ACT mode, do the same for _fSetParByKnob_Fine control.

Shift latch for knobs
NI has not foreseen shift latching. To control Pan or ACT parameters with fine resolution without keeping shift pressed, you can active extra switch which do that.
If you apply the following, Shift+Play will toggle "Shift latched" mode (but loose usual functionality, well... at the moment it is not defined yet...)


  • Click on Options tab
  • Find "Software States" section and in the first combo-box select tune_ShiftLatch
  • In the next combo-box changed "Disabled" to "Enabled"
  • Set "Default state" checkbox
  • click "Save" button in that section
  • save and re-load preset

Commands
The last 3 knobs in Strip mode can be tuned to execute Cakewalk commands (or perform command like operations).
Since each knob can be turned left or right, with or without shift, up to 12 different commands can be called.
At the moment knob 8 defines zoom (4 commands) and shift+7 turning right insert "KK" track template. So there
are only 7 "free" slots left. But you can redefine any used one.

In the Logic tab you can find _fUserXXX_(S)(N)_Strip set of Logical Controls. You can modify them to (re)define commands performed by these knobs.
_fUserTitle_(N)_Strip should have just one Text Action to set upper line of the display. That text is common for shifted and not shifted mode.
_fUserText_(S)(N)_Strip should have just one Text Action to set lower line of the display, separately for shifted and not shifted modes.
_fUserDo_(S)(N)(L|R)_Strip should perform the command. It will be called when you turn corresponding knob left or right (L|R).

The simplest action is to call some Cakewalk command, see _fUserDo_8L_Strip as an example.  You can elect the (only) action there, press "Copy", switch to
the control you want define (f.e. _fUserDo_7L) and "Paste" it. Then select pasted Action and then select different command in the "Action configuration" section.
Do not forget to modify the text in corresponding fUserTitle and fUserText, so you can be reminded what that control does by touching corresponding knob.

NOTE: if the command "take some time", it is important add "'Set state' _SlowCmd -> Yes" Action. You can copy it from _fUserDo_S7R_Strip.
Knobs are sensitive, they can easily execute the command many times even on small motion without that definition. Sometimes that can be desired effect,
like with Zoom, but in most cases it is better have delay (2 seconds) before a command can be executed again.

fUserDo_S7R demonstrate how you can create new track from track template. Unfortunately Cakewalk does not allow surface plug-ins add synth directly.
So the procedure mimic mouse/keyboard sequence, but calling insert template dialog, typing template name and pressing "Enter".

It is foreseen you define another templates, with different names. As first, in the Options tab select tune_TrackTmpl Set in the Software States section.
Then select "<Append state>" in the next combo (or select existing State for editing it). Type exact template name into edit control and press "Save" right of it.
Then you can copy all actions in _fUserDo_S7R_Strip (click the first and shift click the last to select all actions, when no actions are selected "Copy" also assumes
all of them must be copied). Paste these actions in control you want (f.e. _fUserDo_S7L_Strip). Select the second action and modify which template name
should be used in the "Action configuration" section.

NOTE: you will have to repeat all custom tunings every time you "upgrade" to newer version of my preset. I recommend in any case save your modifications as own preset (with different name),
so you can recall older/modified preset when required.


Flangad

hi!
wow, i've just try your driver and KK M32 preset for Cakewalk, and this is just amazing.
Your preset offer more out of the box functionnalities than the official NI integrations for other DAWs.

I've made a Cheatsheet in english and french to help remind all the controler functions, in the different modes. Please find it as attached file and tell me if you see some missing informations or errors. I can send the .ppt (editable) version if needed. [edit 2024-04-02 : update of the file with a few corrections][edit 2024-04-06 : new update]

M32 is a very good MIDI and DAW controler, but with your addon, it become a Beast!

By the way, it's great to have 7 free slots for custom commands. I could easily configure a few ones, but it's not easy for a newbie to find the functions we need in the various scroling lists. Does a full documentations of available functions exists? Could we expect a future release of your preset with pre-mapped commands for every knob?
I would like to use the commands as shortcuts for editing functions: select current clip (done), cut/copy/paste/paste with link clip (i could only configure keyboard shortcut CTRL+X/C/V, so i was unable to program "paste with link").
Also, it would be great to be able ton control the matrix clip (navigate through the matrix, start/stop playing clips and scenes...) and the step sequencer. Do you imagine any way to do that?

azslow3

Hi,
I have not checked every function, but your cheat-sheet looks nice (and faster to use then my text table  ;)
The only note,  "Commandes" (instead of "Commands") in the English version.

For Commands. Note there is "<Menu>" option which enables the list in the right combo, including f.e. "Edit | copy". In general, these are all menu entries in Cakewalk Top Menu. All other commands are from Cakewalk shortcuts preferences (global bindings only).

Unfortunately Cakewalk does not provide API access to many operations, including matrix, step sequencer and content editing. When something can be assigned to keyboard shortcut, as you have already found, that can be assigned to controls.

AZ Controller user manual, tutorials and BCR2000 preset can give some hints what can be done with a sequence of Actions. F.e. "macros" by sending a sequence of keyboard shortcuts.

What is MIDI assignable in the Matrix can be tricked with (external) MIDI loop-back (soft) device. AZ Controller supports "slave" instances (to avoid troubles, use https://www.azslow.com/index.php/topic,384.0.html ). So another instance can point to MIDI loop and AZ Controller can send arbitrary MIDI to it (f.e. as reaction on "free slots" commands). Unfortunately, that is looking for fancy troubles. Cakewalk is NOT filtering assigned MIDI, so they will be "delivered" as normal MIDI input as well. After hitting the problem several times, I have decided never assign MIDI to Cakewalk (in most weird case, assigned MIDI by coincidence was modifying one parameter of VSTi which was not exposed to GUI at all... you can imagine that subtle change in the sound was driving me crazy till I have understood the problem).

Flangad

thx. i made a new version to correct a few things.
Do you see any way to command to located the playhead at the end of the pasted clip (so we could instance the copies with the knob)?

azslow3