Monday, October 20, 2014

Automatable MIDI channel router script for Kontakt

This is my first exercise in writing a multiscript for Kontakt. It's a little tool to route MIDI messages between channels inside Kontakt. It may be used to switching instruments with keys or controllers while playing. It looks like this:

The top row of buttons is where you select the destination channel, these buttons can be automated, with keys of CC controllers. There are two routing modes: single channel is where you redirect midi messages to a channel of choice, in multi channel you can select multiple channels as destination, so you can reprogram a multi instrument setup live.
There are three ways of automation. Use keys, is where you assign keyboard keys as channel switches. You set (manually or by learn button) "start_from" parameter to point to first key number to use, from now on following 16 keys will be used to toggle channels switches. If you don't need to automate all 16 channels, or don't want to trade off so many keys, you can reduce automation range with "size" parameter. You can do the same using CC controllers, "use multi CC" option. Or, if you only use "single channel" destination, you can "use single CC" controller to set destination channel. Automation source can be assigned to any port / any channel, or a specified channel. So you could for example use one controller to play and another controller to select instruments. And this is how it works...

If you'd like to try it, download plain text file, or Kontakt preset file (to place in Kontakt's presets/multiscripts folder). It should work in Kontakt 4.2.4 or newer, I'm not sure about earlier versions. I tested it roughly and it seems to work, but there are no guarantees, so use it at your own risk. Also remember that it is multiscript, you insert it in multi rack, on top of all instruments (use the "scroll" button to activate multiscript rack).


  1. it works, great for live performance to reduce cpu load

  2. Great script. But it would be better if you could switch all 64 channels (ports A-D) And that would be the step of switching the controller was not 8 units but only one. For example, the controller CC32 date 1-16 met Port A to Channels 1-16, CC32 date17-32 corresponded to Port B channels 1-16 and so on.

  3. Amazing
    Is their any way to lock this multi script preventing it from editing?

  4. Works well with Kontakt 6.2.2
    Thank you very much for sharing!

  5. This is very useful, thank you for sharing!

  6. veryyyy useful! a million thanks to you! im using it to automate instruments changes a 10 piece band performance by just passing throug the script inside a empty kontakt instance, that sends Kontakt Event Out to IAC driver that distributes the signal to the channel filtered tracks (via Nuendo scripting)! This is the final piece of the puzzl where my focus was only play keyboard and not being clicking and tapping buttons like an engineer on stage. thank you again.