DTMWiki 编曲中文百科
首页 chevron_right 百科 chevron_right Dev chevron_right Kontakt chevron_right KSP

KSP

kontakt 乐器的编程语言

person brucekomike schedule 更新于 2025-09-09

ksp参考

on事件 (callback)

整个脚本的大体框架都是由这个事件构成的

在官方文档中称为 callbacks,结构为

on <event name>
  ... <codes> ...
end <event name>
  • 可以使用 exit 指令退出
  • 可以通过 变量$NI_CALLBACK_ID 获取事件的ID
  • 可以在function中使用 变量$NI_CALLBACK_TYPE 以及其他对应的内置变量查询调用该函数的事件参数
  • 可以用$NI_UI_ID和对应的内置变量查询相关的UI事件参数

on async_complete

在任意异步函数执行完成后调用

on controller

在任意midi控制器变化时执行

on init

在每次乐器打开、代码检查无误后加载

on listener

在自定义时间间隔调用,或者在收到任意走带指令后调用

  • 可以通过 set_listener() 设置周期循环调用
  • 也可以接受宿主的走带指令
  • 在小概率情况下,速度可能歪(比如宿主修改了tempo)

on note

由 midi on 事件 触发(按键触发)

on note_controller

由 midi 2.0 独立note控制器触发

Currently, these messages can only be generated internally by KSP in one script slot, then acted upon in another script slot. Kontakt does not yet receive MIDI 2.0 messages from the outside.

目前,这玩意只能在ksp内部使用,kontakt还没学会怎么从外部接受midi 2.0 信号。

简写:这个可以当成是坏的

on persistence_changed

随 on init 触发,或者快照(snapshot)加载触发

on pgs_changed

用于多槽位通信

on poly_at

用于midi除后

on release

由 midi off 事件 触发(抬键触发)

on rpn/nrpn

由 rpn 或者 nrpn 事件触发 (rpn/nrpn 二选一)

on ui_control ()

由 对应的UI控件触发

on ui_controls

由任意UI控件触发

on ui_update

UI 刷新就会触发,触发非常频繁

变量

变量就那么几种

变量类型

  • $ int 整数
  • % int array 整数序列
  • ~ real 实数
  • ? real array 实数序列
  • const $ 固定值整数
  • const ~ 固定值实数
  • polyphonic $ 整数音符序列

变量函数

  • make_instr_persistent()
  • make_persistent()
  • read_persistent_var()
  • watch_var()
  • watch_array_idx()

运算符

此部分内容未完成

基础运算符

  • :- 赋值
  • + 加法
  • - 减法
  • * 乘法
  • / 除法
  • -x 负值
  • abs(x) 绝对值
  • signbit(x) 返回标记位(负数返回1,非负数返回0)
  • sgn(x) 区间判断(负数返回-1,0返回0,正数返回1)

整形运算符

  • inc(x) 自加一
  • dec(x) 自减一
  • x mod y 返回除法余数

实数运算符

  • x mod y 返回除法余数
  • exp(x) 返回 $ e^x $
search Ctrl K ESC
manage_search 输入关键词开始搜索