Komplete Kontrol V2/V3 Default Selector

B.Minor
B.Minor Member Posts: 194 Advisor
edited October 22 in Komplete Kontrol

Personally I'm not convinced yet by the current shape of the KK 3.X development, and I really dislike the fact that NI decided to remove very useful functionality that KK 2.X already provided. I'm not strictly against KK 3.X, but I really doubt that NI can (or even want to) keep their promises in the near future to provide full feature parity before the MK2 has also reached its EOL. By looking at how MK1 owners have been surprised just a few days before KK 3.X was released, you can clearly see the company strategy which seems to be purely sales-driven, focusing on the new MK3 keyboard exclusively. My personal fear is that MK2 owners will have to face the same reality very soon, let's say in about four years already, seeing their gear declared as obsolete and no longer supported by NI (even though my personal MK2 is just half a year old only). As I can see, there's also a kind of pressure already to make customers switch to KK 3.X only and to forget about VST2 plugin support at all.

That current situation made me think about a possible way to get "the best of both worlds", being able to use both streams more or less in parallel on my Windows PC as long as my MK2 is still supported. While my daily work will surely be based on KK 2.X for the next year, of course I'd also like to check frequently how far the latest KK 3.X developments have progressed in the meantime.

At this point, big Kudos to Kymeia who finally inspired me in his related posting (https://community.native-instruments.com/discussion/comment/103010/#Comment_103010) to create a setup for a kind of "parallel" KK configuration which I'd like to share with other interested users below.

For all installed applications, like DAWs and plugins (including the KK standalone app and plugin instances as well) their Windows registry references always point to the same specific spots on disk. That's why I came up with the idea to write me a short batch file (in my case it's called "SelectKK.bat") which enables me to change the KK configuration from V2 to V3 (and vice versa) immediately. After setting my preferred KK version, nothing else needs to be done, unless that "default" needs to be changed again later. Of course, this all will only work if you have admin permissions, otherwise any pre-requisites (described below) as well as the batch file itself (for which I also added the code at the end of this posting) are useless and will just produce error messages.

Now, what comes in really handy is the fact that KK V2 and KK V3 use different locations to store their dedicated databases; from version KK 3.0.1 they even use their own dedicated scan apps. In fact, KK V3 is writing to a dedicated subfolder called "Browser Data" located within the original folder which was already used to store the KK V2 database (found in "C:\Program Files\Native Instruments\Komplete Kontrol"). The good thing is that any KK V3 launch or scan won't destroy the database previously created by the KK V2 application and vice versa.

Here are the pre-requisites I used to set up my "dual KK" configuration accordingly:

  • 1) First I installed the latest reliable KK V2 version currently made available by NI (KK V2.9.6), launched its standealone application, checked all my preferences, performed a full VST2/VST3 plugin/user library scan by using its dedicated V2 scan app and closed the application again.
  • 2) I copied the V2 standalone application's executable "Komplete Kontrol.exe" (to be found in "C:\Program Files\Native Instruments\Komplete Kontrol") into a self-created subfolder on my disk and named it "KKV2". I did the same for the related KK V2 plugin (in my case "Komplete Kontrol.vst3" located inside "C:\Program Files\Common Files\VST3"). Finally, also the V2 scan app ("ScanPlugins_x64.exe") and a V2 Maschine-related library ("MaschineLibAVX_x64.dll" - both located in "C:\Program Files\Common Files\Native Instruments\Komplete Kontrol") were copied over to that newly created "KKV2" directory.
  • 3) After that procedure I "updated" to the current KK 3.X version (KK V3.0.1 - currently offerend by Native Access) by installing right over the existing V2 configuration. Again I opened up its related V3 standalone app, checked the preferences and performed a full plugin/user library scan by using its dedicated V3 scan app before closing KK again.
  • 4) I repeated all steps already explained in bullet point 2) above, but this time by creating a related backup folder named "KKV3" for copying over all V3-related files.
  • 5) Finally, I just had to create a batch file allowing me to manually select KK V2 or V3, as required. The code simply copies back the previously saved set of V2 or V3 files from their respective backup folders to the original location on the disk. If files already exist there with the same name, they will be overwritten by the actually chosen version instead. By using this method, all shortcuts and programs (like DAWs etc.) will always access the currently "pre-defined default KK" app (or the related plugin).

Of course, you could do all that "copy/paste" stuff manually each time you'd like to toggle between your "KK defaults", but for those who are further interested I have also provided the code I have used to make that batch file work. Please use it (or modify it to your own likings), but also keep in mind that you are doing all that at your own risk. If anything should really go wrong, just perform a new KK installation over your existing setup, and everything should be fine again. As mentioned, V2 and V3 databases seem to be independent from each other and won't be touched by this approach in any means.

@echo off

:Start
cls
echo KOMPLETE KONTROL SELECTION MENU
echo.
echoΒ Β Β  1 ... ExitΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  will close this task without applying any changes
echoΒ Β Β  2 ... KOMPLETE KONTROL V2Β Β Β Β Β  will make the LEGACY app your new KK default
echoΒ Β Β  3 ... KOMPLETE KONTROL V3Β Β Β Β Β  will make the RECENT app your new KK default
echo.
set choice=1
set /p choice=Please type in any valid number [1/2/3] and hit [ENTER] to proceed (default = %choice%):
echo.
if %choice%==1 goto :NoChange
if %choice%==2 goto :LegacyKK
if %choice%==3 goto :RecentKK
Goto :Start

:RecentKK
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV3\Komplete Kontrol.exe" "C:\Program Files\Native Instruments\Komplete Kontrol\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV3\Komplete Kontrol.vst3" "C:\Program Files\Common Files\VST3\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV3\ScanPluginsApp3_x64.exe" "C:\Program Files\Common Files\Native Instruments\Komplete Kontrol\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV3\MaschineLibAVX_x64.dll" "C:\Program Files\Common Files\Native Instruments\Komplete Kontrol\*.*"
echo You have selected KOMPLETE KONTROL V3 as your new default app.
Goto :Exit

:LegacyKK
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV2\Komplete Kontrol.exe" "C:\Program Files\Native Instruments\Komplete Kontrol\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV2\Komplete Kontrol.vst3" "C:\Program Files\Common Files\VST3\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV2\ScanPluginsApp_x64.exe" "C:\Program Files\Common Files\Native Instruments\Komplete Kontrol\*.*"
copy "C:\Program Files\Native Instruments\Komplete Kontrol\KKV2\MaschineLibAVX_x64.dll" "C:\Program Files\Common Files\Native Instruments\Komplete Kontrol\*.*"
echo You have selected KOMPLETE KONTROL V2 as your new default app.
Goto :Exit

:NoChange
echo No changes have been made to your configuration. Aborting task.

:Exit
pause
ο»Ώ

As mentioned, I'm using Windows, and the described method works flawlessly to me. At least I couldn't spot any drawbacks so far. I'm sure a similar solution woud also work for MacOS. Please feel free to contribute here by sharing your ideas. In case you'd like to propose other approaches which are more elegant, advanced or even intelligent from your point of view, you're are very welcome to share your ideas with the community.

@Kymeia:

Thanks again for your general information on which my approach is based on. As you seem to be a Guru when it comes to test any operational scenarios like the one here, using KK V2 and V3 streams in parallel, maybe you could also share your opinion. Did I miss something essential in my approach? THX.


Comments

  • Kymeia
    Kymeia NKS User Library Mod Posts: 5,019 mod

    Thanks for this. For me my main concern would just be the effect this could have on DAW projects if the plugin versions are being switched frequently. This is why personally I have not gone for a switchable option but instead something relatively stable but that lets me use the latest KK3 for playing and performance (or at least that's the plan when they fix the performance issues, and I do aim to get a Series III at some point) and keep KK2.9 for building NKS and backwards compatibility with older plugins (especially VST2 which on Mac often require rosetta 2 to be installed and the DAW to be in Rosetta mode)

    So I have no switching, just 2.9 standalone in a renamed folder so it doesn't get overwritten, and I am only using the VST2 plugin version of 2.9 (and only in a DAW I setup to stay in Rosetta mode - Reaper, which handles this well). Then I have 3.01 standalone in the default NI folder, and also VST3 and AU versions. Now NI have made the scanapp as well as the databases separate entities this is much easier, before I was having to switch the scanapps but now I don't need to, they coexist peacefully.

  • B.Minor
    B.Minor Member Posts: 194 Advisor

    @Kymeia:

    Thanks for your comment. At least from a Windows operational perspective, my approach with the BAT file has turned out to be a real time-saver, at least for me. Just in a few seconds I'm able to switch back and forth between two completely different KK setups which configurations are not affecting each other. I will keep it up until we hopefully get a worthy and fully functional KK V3.

  • D-One
    D-One Moderator Posts: 3,579 mod
    edited November 2023

    Regarding the plugins only:

    If the database files required by both versions are in different places, what are you getting around with your batch script? The fact that you can't have more than 1 plugin with the same name in the DAW? Meaning both the KK2 and KK3 VST3 and just use them independently as they were different plugs?

  • B.Minor
    B.Minor Member Posts: 194 Advisor
    edited November 2023


    To avoid any misunderstandings, in my described solution (for Windows only) you can't have both applications, KKV2 and KKV3, available at the same time; neither as a KK standalone application, nor loaded as plugin(s). For example, if you have defined to set KKV2 to act as your "KK default", from now all plugins inside your DAW related to KK will open version KKV2 simultaneously. The same applies to KKV3 if you have selected it accordingly as your "default" before launching your DAW. Both scenarios should work in the same way; in fact your DAW will not even take care of the KK version which you have selected before. The included VST2 and/or VST3 plugins inside the KK instance(s) should load exactly in the same way, no matter what.

    The "beauty" of this trick is just that you may switch between both KK versions within a few seconds only. In fact, the DAW (and Windows OS in general) will always find the related KK executables/plugins/scanapps (and their dedicated KK databases) there where it expects them to reside naturally. Why? Because the batch file just changes your current "KK default" by copying the necessary excutables/VST3 files (standalone/plugin and scanapp) to the proper spot where initially installation took place on the disk, so that everything is working properly as you would expect it to happen. In case KKV2 is your current "default", the V2 database will be natively used; and if KKV3 is your preferred option, the V3 database will be established instead. Each application will behave exactly as it would - just after an actual "(re)installation".

    For better understanding: Provided you have followed my instructions I described above (necessary to be performed prior to using the batch file itself), namely to store all mentioned KKV2 files (e.g. from V2.9.6) after installation to a kind of "backup directory" first, and then you did the same for KKV3 after having installed it as well (e.g. V3.0.2) and saving the KKV3 files to another "backup directory", you're ready to go.

    From now you only need to launch the batch file and to enter your choice whenever a change from V2 to V3 (or vice versa) is necessary. You just decide which one should become your "default" from now. The batch file does nothing else than to copy the proper set of previously saved KKV2 or KKV3 files to the initial Windows KK installation directory; so each Windows registry entry, each shortcut and each application (including DAWs) will find the KK standalone and the plugin components as well as the related scanapps immediately, depending on the choice you have taken previously. In case you have also scanned your V2 plugins after the initial KKV2 installation (as described in my initial posting), and then you have installed V3 right over it and launched it with another scan, your VST2 plugin information will be carried over to the KKV3.x database automatically and will be accessable from there as usual.

    Another practical example for any testing: Let's say you have selected KKV2 as your "default" for the moment. Create one or more tracks inside your DAW, select Komplete Kontrol as instrument for each of those, and load any VST2 or VST3 plugin(s) as desired. As expected, KKV2 will show up there as your plugin host. Store the song in your DAW. So far so good.

    For whatever reason you decide to use KKV3 from now on (or at least for the next time). Just run the batch file again and select KKV3 instead. Launch the DAW again and load the same song that you have previously saved while still using KKV2. You will see that KKV3 is now automatically used by your DAW instead of KKV2, and of course the same VST2 or VST3 plugins will be correctly loaded and used in the tracks. In other words, the DAW doesn't care which KK version you will be finally using; the important thing is only that the VST2/VST3 instruments should still load and work without any flaws (at least in my case). The KK standalone version will also behave the same; whatever you have chosen to be your "default", the correct scanapp - along with the correct database - will always be used accordingly.

    I know, this is not the most elegant way of switching between the two different KK configurations (re-installations for change would be "cleaner"), but at least the batch file method is super-fast and it works perfectly for me. Of course, this method also cannot compensate all the drawbacks that KKV3 still has at the moment. Therefore, it's nothing more than a quick "toggle function" between "both worlds" to test things out without having to change any song contents inside your DAW. I'm using it just as a quick possibility to see how far the NI development has progressed in the meantime on the KKV3 side. Personally, I'm always switching back to KKV2 natively, as there is nothing that can go wrong with that version.

    I hope I could make things a little bit clearer now 😎.

    Edit: I'm using Cubase Pro 13 on my PC, so both, VST2 and VST3, are natively supported by Steinberg (and what is remarkable: due to this circumstance VST2 is also officially supported for another year). That's why I don't have to "switch" DAWs or systems depending on which plugin type I'd like to use in my songs (like this might be the case when using some Macs).

  • D-One
    D-One Moderator Posts: 3,579 mod
    edited November 2023

    I understand the concept of moving files around with a bash to put the right thing at the expected location and switch in between versions.

    What I asked is if the reason for all that is the fact you can't have both versions loaded at the same time in the DAW, at least in mine duplicate (or 2 versions) of the same plugin doest not work but I know a way to have both versions loading and usable without having to move anything around every time:

    It's possible to edit a Plugin's name identifier with a hex editor or a tiny python script so you can have the same plugin twice, or in this case 2 versions because the DAW (at least Ableton) uses that identifier to determine if the plugin is unique or not, if it's not only one of them loads so changing it's identifier name fixes the issue thus allows 2 versions that you can simply use normally.

    I found this when making NIPacther, so I should have some notes about how to do it saved somewhere, not sure this would be of interest to anyone tho.

    This would only work if each version has it's own database/scanapp and therefor don't mess with each other.

  • B.Minor
    B.Minor Member Posts: 194 Advisor
    edited November 2023

    OK, I see. Your approach is related to a much more complicated use case than mine, and I'm sure there might be users here in this forum who'd also be interested to know how you'd achieve that goal.

    However, my method was just an option to save regular KK re-installation time, especially to let me check quickly how far NI KKV3 development has progressed in the meantime, just to test out current KKV3 compatibility and improvements as they appear in NI's related "updates".

    For me personally it would be of no use to have different versions of KK within the same song; at least I coudn't think of a useful scenario for me. Either the KK application works as expected on my OS/DAW combination, or not (yet). But hopefully we can experience someday that KKV3 has finally reached the point where it can compete with its own predecessor πŸ˜‰.

  • B.Minor
    B.Minor Member Posts: 194 Advisor

    @D-One:

    Btw., one specific question to you, as you are the famous inventor of the so-called "D-One Mod", allowing screen size adaptions on the KKV2 application:

    Have you already looked into the KKV3 app code? Would this even make sense, or do you think we can really expect that NI is providing us with a related solution soon, letting us use our big monitors with a "real fullscreen" setup?

  • D-One
    D-One Moderator Posts: 3,579 mod
    edited November 2023

    I see, makes sense.

    Well... Famous? Now you're making me blush haha.

    Only glanced over it, I haven't done any patch testing yet but I suspect KK3 reuses most of KK2 GUI code, even unused stuff seems to still be there and the new parts might not be editable. Got to have a second look and test some stuff...

    No, I don't think NI will fix that problem any time soon, my guess is they will be very busy fixing issues and quirks for quite a few months, then mid next year KK3 gets 1 or 2 small new things, that pace remains for 2 years after release then it stagnates due to them moving focus to some other project or HW. Thats the usual MO I am used too. Probably a little harsh but I am very cynical at this point.

  • B.Minor
    B.Minor Member Posts: 194 Advisor

    Well... Famous? Now you're making me blush haha.

    Seriously - no cap. If a well-known German company even mentiones you in the bonus section of their (commercially advertised) video tutorials when explaining "secret tweaks" around the Komplete Kontrol app and plugin (still related to KKV2 and the MK2 keyboard series), you can rightly claim that you have made it into the "hall of fame of VST culture"πŸ‘¨β€πŸŽ“.

    I'm still hoping the best about KKV3 and its further NI development, even thought I hear the clock already ticking behind me. After all, end of MK2 support is also very near already, and NI should give back to the existing community as soon as possible what they have taken away from KK recently before that time has come.

  • D-One
    D-One Moderator Posts: 3,579 mod

    What company? I am not aware, post link pls! πŸ™

    BTW: I had a better look and while patching KK3 is still possible the part that would matter the most which is the Browser size seems to rely on editing the binary which is too much trouble for me to try to figure out, so I prob wont. Other things such a font size and whatnot are no longer a problem.

  • B.Minor
    B.Minor Member Posts: 194 Advisor


    @D-One :

    Sent you a PM.

    I'd prefer not to get caught in the crossfire if you decide to sue this company for being explicitly credited but actually not paid at all for your valuable inputs πŸ˜‰ - har har...

  • BIF
    BIF Member Posts: 982 Guru

    ...I haven't done any patch testing yet but I suspect KK3 reuses most of KK2 GUI code...

    @D-One

    NI is gradually migrating their stuff over to QT, with KK being one of those things being migrated. Additionally, UI improvements are due to be worked on by the NI team.

    My manager lizard brain may not understand it 100%, but my guess is that eventually it may be that KK3 uses revamped (and therefore different) GUI/UI code than KK2. So, just a head's up for you that this is possible.

    @B.Minor

    Thank you for your work on the batch selector. Nicely done! I don't know if I'll ever need it myself, but it's nice to know it's there if I do.

  • D-One
    D-One Moderator Posts: 3,579 mod

    Oh, thanks! Ha ha, i'd never sue anyone for that.

    Interesting, thanks. I found that for example the browser size now needs to match a C++ .cpp file instead of just relying on a easy to edit .txt file, this is very odd as it's the only thing I've found like this so far... Hopefully this is indicative that it will be resizable sooner rather than later.

    OK i'll shut up now, feel like I am derailing this thread.

This discussion has been closed.
Back To Top