Skip to content

Welcome to CKSP!

cksp is a compiler and transpiler framework built in C++, designed to convert cKSP syntax into KSP syntax for Native Instruments' Kontakt.

Its goal is to bring the feel of modern programming languages to Kontakt scripting, introducing modularity and abstractions while ensuring fast compilation. This makes writing and maintaining Kontakt scripts easier and more approachable—even for those new to instrument development.

At a Glance

What is this?

While it can also be used with the vanilla KSP syntax, it is designed to be used with the cksp syntax, which is a modified version of KSP with elements from lua, TypeScript and python. The compiler is fast taking at most a few seconds to compile big projects. The output is a standard *.txt file that can be loaded into Kontakt as usual, either through the GUI or updating the script file in the resources container. CKSP Tools

This documentation serves as an introduction to the CKSP syntax and provides descriptions of basic language constructs. For the sake of completeness, the following descriptions and explanations also include constructs that already exist in Vanilla KSP or other iterations of KSP compilers. Notably, many syntax ideas and concepts have been adopted from nojanath's fork of Nils Liberg's SublimeKSP plugin. This fork has become a near replacement for the Vanilla KSP syntax, and to make the migration to CKSP as smooth as possible, most of the syntax features introduced by SublimeKSP have been adopted. Examples include most preprocessor functions, automatic type-casting, and for-loops. These features are further elaborated in the section Adopted Features and behave identically, while others have been extended or modified; these are detailed in the chapter dedicated to the CKSP Syntax.

Currently, cksp is under active development, just like the CKSP Tools extension for Visual Studio Code. While the extension already provides many useful features, there are still some missing functionalities that I plan to implement in the future. Since I am working on this project in my spare time, I cannot provide a specific timeline for when new features will be added or bugs will be fixed. However, I am committed to continuously improving the cksp project and making the compiler open-source eventually. If you have any suggestions or feature requests, please feel free to open an issue in the respective GitHub repositories.