KSP is hard

NormkbPlayer

Active Member
KSP is harder than I Expected.

I've come across two Manuals

One that is Koala KSP.
I thought it was easy as copy and Paste.
Sadly no.

Also is it possible to create something as big as damage, Session Strings. Via KSP?
Or is it too much.

Does KSP have any Limit to Creativity.
 
OP
NormkbPlayer

NormkbPlayer

Active Member
"done with KSP



The GUI
Of the Instruments , big Libraries like the Ones in Native Instruments.

Session Strings,

Can we create the User Interface via KSP or is it possible only by Native Instruments.
 

j_kranz

Active Member
The GUI
Of the Instruments , big Libraries like the Ones in Native Instruments.

Session Strings,

Can we create the User Interface via KSP or is it possible only by Native Instruments.
The graphic assets typically are done by a graphic designer (whether NI are anyone else), but yes they are implemented via KSP. Native Instruments uses the same KSP within Kontakt as everyone else.
 

Dewdman42

Senior Member
I've been curious about KSP for a long time, but I have no idea where to find information about it. Is there an official manual of some kind? Unofficial? Free resources for information other then you tube?
 

d.healey

Senior Member
I've been curious about KSP for a long time, but I have no idea where to find information about it. Is there an official manual of some kind? Unofficial? Free resources for information other then you tube?
Kontakt comes with the KSP scripting manual. Just go to the help menu and look in the manuals sub-menu. Once you really start getting into KSP you'll want to use the extended language pioneered by Nils Liberg and you'll use Sublime Text and the SublimeKSP addon to write your scripts. Nils has a good beginner tutorial on his site.
 

Dewdman42

Senior Member
extended language. Is that some kind of extra extension that has to be installed somehow to work within Kontakt?
 

d.healey

Senior Member
extended language. Is that some kind of extra extension that has to be installed somehow to work within Kontakt?
KSP is a crappy language and it's awful for writing large scripts. So Nils created what we call the extended language which is basically syntactic sugar that compiles to regular KSP that Kontakt can understand. To use the extended language you need a compiler, Nils built one into his custom editor which you can download from his site and he made a version that runs in Sublime Text 3. This is now very out of date and is not recommended for new scripts, however Nils code was forked and improved upon by a few other people and this fork, Sublime KSP, is what you should use to write anything other than the most simple scripts.

I have a tutorial on my YouTube channel for how to set this up, I think Mike Greene also made a tutorial and I'm sure there are others too.
 

Dewdman42

Senior Member
Thanks for that overview about KSP and the Nils stuff. I didn't realize that KSP was so low level in nature that a higher level language and compiler had been created for it, etc. Do NI staff tend to use Nils compiler too? Just curious.

Well I am not interested in developing any sample libs, for me its more about just learning a bit to write some multi-script for processing midi before hitting the libs I already have in Kontakt. Minimal need actually, and sounds like a steep learning curve...so might not happen.

But anyway thanks for the overview...
 

EvilDragon

KSP Wizard
Do NI staff tend to use Nils compiler too?
Not all of them, no. Nikolas Jeroma famously only uses vanilla KSP (he did all the Discovery Series instruments except Balinese Gamelan which is Soniccouture). However the likes of Frank Elting (Straylight) uses SublimeKSP to great effect.


Also, KSP is not exactly low-level (by definition scripting languages are high-level). It's just not a nice syntax.
 

paoling

Developer
You can certainly script in KSP with no prior programming experience. But in general having an understanding about how to organize code and other languages as well helps a lot. From my experience there's a certain "logic mindset" that forms through years of coding.
I personally found that knowing Java, Pascal, Python, C++ has been really helpful to create my own naming conventions in KSP, my little re-usable snippets of code, my own elegant-solutions to certain problems. Also by studying how VSTs work, you can infer how Kontakt handles certain things so you try to can make the most out of it. I think that what I'm saying applies to any skilled scripter/programmer here.
Writing good code helps to develop more complex stuff, but this is a constantly improving process and we can just be better at it by continuing to do it.
 
Last edited:

Fredeke

Senior Member
KSP is a rather tedious language because it was devised with real time efficiency in mind, rather than convenience.

However, several free 3rd party projects merged into SublimeKSP, a KSP pre-compiler plugin for Sublime Text Editor (of which the free demo is fully workable). It adds a lot of useful features to the language, like real functions, for loops, multi-dimensional arrays, macros, syntax highlighting, etc.

The doc for it is is fragmented all over the internet, but I've compiled a list of all resources I could find here: https://vi-control.net/community/threads/heres-all-the-doc-i-could-find-about-sublimeksp.77885/

Of course, this assumes you're familiar with at least one programming language already. Otherwise, I would start with programming starter kits for kids (try Scratch ;)). There are also various (generic or KSP-specific) programming tutorials on youtube and across the web, of various quality and skill levels.

I hope this helps.
 
Last edited:

d.healey

Senior Member
KSP is a rather tedious language because it was devised with real time efficiency in mind, rather than convenience.
Real-time does not mean inconvenient. HISE Script is realtime and is very convenient.

C++ is also used for realtime and is pretty convenient.
 

Fredeke

Senior Member
Real-time does not mean inconvenient. HISE Script is realtime and is very convenient.

C++ is also used for realtime and is pretty convenient.
Indeed.

But C++ is working at a much lower (almost machine) level, which makes the comparison unfair. And while more elegant, it is at least as unforgiving as KSP.

Javascipt (used in HISE) is intended for high-level real time applications (originally web apps), so yes, you're right on this.

Nevertheless, realtime constraints are the only excuse I can find for KSP ;)
 
Last edited:

d.healey

Senior Member
Nevertheless, realtime constraints are the only excuse I can find for KSP ;)
They could have used Lua too which is a little nicer. I think the main reason KSP is cumbersome is because it was based on Pascal and so inherited its quirks. I also think the original implementation was intended for simple MIDI manipulation tasks and basic GUIs rather than the much more sophisticated applications it has come to be used for. I didn't get into KSP until Kontakt 4 so I'm not too familiar with its history before that.
 

Fredeke

Senior Member
They could have used Lua too which is a little nicer.
They should have. I suppose they originally didn't intend it to grow so much.

I think the main reason KSP is cumbersome is because it was based on Pascal and so inherited its quirks
That's what feels familiar about it !
God I hate Pascal. The rigor of C combined with the power of Basic ;)