Scriptorium : Channel Rotate

Scriptorium : Channel Rotate

By Dan Powell  |  14.01.2014

In the comments of the last KSP post Kevin suggested an idea for a channel rotate script, much like the Alternate Assign MIDI mode of some early Yamaha synths like the TX-81Z or TX-802. In this mode, each note received was sent to a successive channel in the multi. It made for some interesting sequencing possibilities, or even a kind of random chord divisi system.

Read More


This is another idea that works best at the Multi level, so this is our multi script post number 2, Channel Rotate:



You can set the type of rotating “direction” with the pull-down menu on the left.  The choices are Forward, Backward, Back and Forth, or Random.   The range of start and ending channel are set with the Start and End Channel menus.   Note that it’s up to you to make sure these channel slots are occupied or not: the script rotates through the defined channels, NOT the loaded instruments.    You can use up to 64 MIDI channels in Kontakt.

Continuous Controllers are slightly strange for this script.   I’ve decided to route them to the current channel, that selected by the last received note-on message.   Since you can hold down many notes, this means that the current channel can be changed before a given note is finished.    The Sustain Pedal (CC 64) is therefore a particularly dangerous controller, so if the Disable Sustain button is switched on all Sustain Pedal messages will be ignored.   You can turn this off tho, if you like living dangerously.



Works with Kontakt 4.2.4 or later.

Close Close

Scriptorium : Multiscripts & Key Split

Scriptorium : Multiscripts & Key Split

By Dan Powell  |  14.12.2013

This is the first post in our KSP series that involves a Multi script, so I thought I’d take the time here to explain briefly what a Multi script is and how it’s different from the Instrument scripts we’ve been dealing with so far.

Read More

The main, perhaps obvious, difference is that Multi scripts are loaded and saved with a Multi, whereas Instrument scripts are loaded and saved within an Instrument.   But this also means that they are able to do and access slightly different things.   An Instrument script has access to the synthesis engine within the Instrument itself, you can adjust filters and so on.   A Multi has none of that, because it lives on a higher level of the structure.   It doesn’t really “know” what Instruments are within it, and is only able to adjust incoming MIDI data itself.

  But this is useful for some functions that are not so convenient to do within an Instrument.

It’s very important to remember that you cannot use a Multi script as an Instrument script, nor vice versa.   They will each only work if in their proper location.  Multi scripts have the same extension as Instrument scripts (.NKP) which sometimes adds to the confusion, so be sure you know what type of script you’re dealing with before you try to install it.

Multi scripts also need to be in a different directory than Instrument scripts, they live here:

/ Documents / Native Instruments / Kontakt 4 / presets / multiscripts /

Once you’ve downloaded a new Multiscript from somewhere, drop it into that folder and re-start Kontakt.    You then need to open the Multiscript window by clicking on the little “paper scroll” icon at the top right of the Kontakt window.

Then using the Preset menu on the far left, you can then choose Presets from the “user” submenu, which will list everything you’ve put in your “multiscripts” folder.


We’ve had several emails requesting this function, so here’s our version of a handy Multi script.

Sometimes it’s convenient to have one sound on the upper part of your keyboard and a completely different sound on the lower part.   Live players often need this kind of feature, and many controller keyboards have this functionality built in.    If you don’t have a controller keyboard that can do it, it can be a bit tedious to edit all your Instruments to the range you want, and also to transpose them how you need, etc.

Multi scripting is ideal for this kind of job.   All the script does is check the incoming note, if it’s above the split point it’s routed to one MIDI channel, if it’s below the split point it’s routed to another.  This means you can have two Instruments loaded in Kontakt, on different MIDI channels, and arrange these as you like on the keyboard.


You’ll notice in the screen grab that you can adjust the split point (default middle C).  You can also shift the octave of the upper and lower sections of the keyboard, which is handy for getting each sound in the desired range.  I’ve layered a Broken Wurli lead type sound with a Novachord Pad in the above example, and for my purposes I wanted to play the Novachord an octave up from my left hand’s input, so I set the left knob to +1.

Controllers (Mod Wheel, Aftertouch, Pitch Bend, etc) are by definition “channel wide”, so you can’t route these based on an input pitch.   The last menu on the right allows you to choose one of three options for the controllers.  They can be routed to the Upper or Lower Instrument, or both.

If you save a multi, the settings of this script will be saved with the multi.   But remember that this script is not saved with the Instruments included in the multi at all.

I’ve left this script unlocked, so curious users can have a look at how it works, and edit it if they like.   It’s conceivable, for example, to edit this script so that each individual note could be set to any output note and MIDI channel, thus allowing you to build large Multi drum kits from many Kontakt Instruments.    I may do that in a future example.


Close Close

Scriptorium : Smart Pitch Bend

Scriptorium : Smart Pitch Bend

By Dan Powell  |  07.11.2013

One of our customers, Jean-Philippe from France, suggested we make a script for frustrated guitarists trying to mimic guitar pitch bend techniques on a keyboard. Here’s the first incarnation of that idea below. Thanks JP.

Read More


This script overrides any normal pitch bend that might be programmed into an Instrument.

There are three knobs, and all can be automated. The first is the Pitch Bend TYPE, and the second two are just the range for upper and lower bends in semitones.

Smart Pitch Bend

There are 6 types of pitch bend included here:

  • All – this bends all notes, like normal pitch bend
  • Last – bends only the last note played
  • Highest – bends only the highest note being held down
  • Lowest – bends only the lowest note being held down
  • Held – bends only notes being held down (not those in release )
  • Release – bends only the notes in release (not those being held down)

The last one, Release, is obviously impossible on a guitar, but can be fun to play with.


Works in Kontakt 4.2.4 or later.


Close Close

Scriptorium : Beat Shredder

Scriptorium : Beat Shredder

By Dan Powell  |  23.09.2013

The idea for Beat Shredder was suggested by one of our users; thanks Flavio!

It’s intended for use with drum loops (or other rhythmic loops) and allows you to randomize the start time of the loop in rhythmic values. That is, if the script is ACTIVE and you play a note, the start time will be a random offset from the beginning, but in multiples of a certain note LENGTH.

Read More

It’s important to remember that you must set your sample to loop correctly at the tempo set in Kontakt or your host sequencer.  The example instrument included below works properly when Kontakt is set to 102 bpm.   The script uses the tempo to calculate the note LENGTH divisions, so the loop and tempo must be set correctly.  (Also remember that for any script using start time offset, you need to have Kontakt in “sampler” mode.)

You can Activate the script with the button at the top left, and using the key defined below that button turn it on or off via MIDI.


The LENGTH and RANGE knobs allow you to set the size of the note division and the Range over which to randomize the start time.   Usually you would set the Range to the number of bars in your loop.

Below the ACTIVE button on the left you will also see buttons for REPEAT and HOLD.   REPEAT will keep retriggering the sample at random points as long as a note is held down.   HOLD will stop the slices from being randomized, so when HOLD is down you will repeat a single slice.   Both these controls also have MIDI Key assignments so that they can be easily automated from a sequencer.

Finally the DIVISOR knob is relevant only in REPEAT mode, and it speeds up the repetitions if you want to use this to create glitch or drill effects.


Works in Kontakt 4.1 or later.
Beat Shredder works best before any other scripts in the script chain.

Close Close

Scriptorium : GeoGenerator

Scriptorium : GeoGenerator

By Dan Powell  |  03.09.2013

GeoGenerator is a very simple generative music script. It’s intended to demonstrate that even with a very basic algorithm you can get some interesting results.

Read More


This algorithm simply generates a random note within an octave range, choosing from the note set or scale defined in the script.   There are five possible voices (VOICE 1 to 5), each of which can be assigned their own NOTE length, OCTave, % chance of occurrence, and VELocity.

You can see the parameters for each VOICE listed to the right of the panel:


The script is made active with the ‘Geo Generator’ button at the top left, and you can mute the input MIDI there as well if you like.  Once active, the script will start playing upon receiving a note, or else when the PLAY switch is turned on.

You can click on the little keyboard to include or exclude notes, or else choose from some PRESET scales.  There is an option for HALF TEMPO if you want to use it to generate random backdrops.  GeoGenerator will chase tempo changes if used in a sequencer.

LIVE TRANSPOSE allows you to transpose the output of the GeoGenerator with your keyboard.  If you play middle C (MIDI 60), the transpose is 0.  Above or below middle C will transpose the output.



Requires Kontakt 5.1 or later.   GeoGenerator works best placed before any other scripts in the KSP chain.

Close Close
Page 2 of 3123