Last modifiedby & filed under Kontakt Scripting (KSP) - Basics, UIs, Tutorials, Scripts and Tools, Kontakt Scripting (KSP) :: Basics.

KSP is a rather simple procedural scripting language for Native Instrument’s Kontakt e.g. to create your own Instruments like those you are probably using all day long already.

What is KSP?

Kontakt Script Processor (KSP) is a scripting language for Native Instrument’s Kontakt that we can mainly use to create our own Kontakt instruments. It is procedural (not object oriented) and very structured. Like there are different callbacks for different events where we put the most of our code into. With those callbacks we can send and receive data from the Kontakt engine.

Is KSP easy to learn?

yes and no. It is very easy to dive in quickly and create basic instruments. The difficult part is not the language itself which is really not that complex. The difficulty lies in writing many many parts on our own since there are not many premade functions or libraries available. Furthermore sometimes there are missing important functions or operators which we get with other languages, like string comparisons (to give a very basic example).

if(@StringA = @StringB)
  // do something
end if

Although we can create own functions, we cannot pass variables into those functions by default. And we can’t return values, as we are used from other languages. This is only possible with a workaround and with the help of the ksp syntax for sublime.

So when our instrument gets more complex, we really have to start being creative ourselves like building workarounds and writing almost EVERYTHING on our own (even simple mouse event handlers) If we are lucky we have access to third party code or tutorials ;) that we can use. But sometimes this is not that easy. If there is only the full code of a whole other instrument available (that we are allowed to use at all) we have to muddle through thousands of nested code lines to find the spot of our interest.

The good thing with KSP is that you can quickly enjoy your first attempts. So the motivation level stays high and frustration low. However probably you still benefit from starting with other (simple) languages first and then move over to KSP.

Do I need to know other programming or scripting languages?

Actually no, but it still helps a lot when you are already experienced in other languages. (read above)

How long does it take to make my own Instrument?

well actually this can’t be answered because everyone has an own learning speed. But even if you are totally new to  programming you should be able to make your first basic instruments after 2 or 3 months of coding in KSP every now and then. With the help of tutorials you are probably way faster. The complex UI tutorial (Kontakt5) should take you about 4 hours (roughly estimated). The same ui with the new ui_panel method (since Kontakt 6) should take you about 1 hour.

Well this should just give you an idea. If you are slower, don’t worry. Complex instruments just take time. Even for a whole team. So don’t get frustrated if you don’t have your instrument up and running within one week.

Some advice

  • don’t start with too ambitious projects.
  • first read through all the basics and references before you think of any project
  • be realistic about yourself and think about what you can and what you cannot do already
  • grow with your projects – don’t let your project grow over you
  • if you are stuck don’t hesitate to ask the communities.
  • sometimes you need to scrap some of your ideas during the process. Yes, this sucks but it’s still better than never completing your project

The Tutorials here will hopefully help you to get things going quickly

How useful was this article?

something you didn't like? Please tell us before you rate!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

NOTE: highly negative votes may be removed without any reasonable given feedback!

Tell us how we can improve this post?

Leave a Reply

use <pre> </pre> to wrap code blocks

use <code> </code> to wrap small code snippets

use basic html to style your comment

Your email address will not be published. Required fields are marked *