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 $