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 KSP scripts easier and more approachable—even for those new to Kontakt instrument development.

At a Glance

Compilation Performance

Since a lot of SublimeKSP features are supported, cksp can also compile existing sksp projects with minimal changes.

And it does so in seconds with an up to × speed-up compared to SublimeKSP. Beneath are some real-world projects that have been benchmarked with both compilers (big thanks to Sonuscore for providing these!):

    Benchmarks: 2021 MacBook Pro (M1 Max, 64 GB RAM).

    What is this?

    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.