简介
在上一篇课程里,我们学习了Kontakt Script的基本应用,主要是对其语法结构和写作要点进行了了解。在这一课里我们将通过一些基本程序来正式开始学习KS。鉴于基础并不仅仅停留在回调函数,还包括一些指令和内建变量,我们会对后面的课程有所涉及。还是我之前说的那句话,大家一定要自己动手去写代码,不然水平是很难提高的。
基本回调函数与指令
本程序将会显示一条“Hello World”消息。它使用了基本回调函数函数和message指令。
on init message("Hello World") {初始化} end on on note message ("You pressed a key.") {输入音符} end on on release message ("You released the key.") {释放音符} end on on controller message ("There's a controller!") {接收到控制器} end on
on init
init是一个初始化回调函数,它在脚本顺利解算时执行。触发on init函数的方法有如下几种:
- 在Kontakt Script编辑器内点击”Apply”按钮
- 加载一个预设或乐器
- 点击Kontakt顶部的惊叹号重启音频引擎
- 加载快照
on init通常用来定义变量、控件或是执行一些指令。在KS中,所有的对象都必须在初始化时定义,这与常见的编程语言有些不同。
on note
note是一个音符回调函数,它在音符信息输入时被调用。
on release
与note相反,release函数在音符结束指令输入时被调用。
on controller
controller是一个MIDI控制器回调函数,当收到控制器、弯音或者通道压力信息时被调用。
message
message指令用于在Kontakt的状态栏显示文本。其调用格式如下:
message(<variable/text>)
值得一提的是,使用message输出文本时,应用””(双引号)括起文本。message指令常用于调试和测试程序代码。但是由于Kontakt只有一个进度条,所以message不能作为与用户交互的长期途径,应使用label,这将在以后介绍。编程者应该养成在初始化时加上一句message(“”)的习惯,它会清除之前的消息,从而确保新的消息能够显示。但是,如果您在init函数中使用了message,它只会在用户手动点击Apply时显示,加载乐器或自动初始化脚本时不会。
使用变量
在任何一种编程语言中,变量都是不可或缺的,下面我们将通过一个例子来认识变量。
on init declare $var $var := 1 message($var) end on
变量规则
在Kontakt Script中,变量以下列形式声明:
declare $NAME
在声明变量时应注意下面几点:
- 变量只能在on init回调函数中声明
- 变量名只能包含数字、字母、下划线
- 变量名区分大小写
- 不能与内建变量使用相同前缀($NI_、$CONTROL_PAR、$EVENT_PAR_、$ENGINE_PAR)
根据以上几点,下面的变量声明都是不合法的:
on init declare $变量 {变量名只能包含数字、字母、下划线} declare $NI_VAR {不能与内建变量使用相同前缀} end on on note declare $b {变量只能在on init回调函数中声明} end on
变量赋值
变量的赋值采用如下的格式:
$Variable := Value
您也可以在变量声明时就赋值。出于便捷性和其他原因,我更推荐使用这种赋值方法,以免引起不必要的麻烦:
declare $Variable := Value
结尾
本期教程中我们学习了Kontakt Script的一些基本概念,包括回调函数、指令和变量。下一节我们将进一步学习这方面的知识。