开始使用KSP与脚本
我们先要对界面中的元素有大致了解:
Script module:脚本模块。这片区域与常规Kontakt模块无异。顶端的五个标签,用于切换不同代码(每个乐器至多可以加载五组代码)。代码模块未必需要包含图形用户界面,一段代码可以执行任务但不具有界面。用户界面的创建会在后续章节学习。
Bypass:旁通。激活或停用脚本。
Script:脚本。此菜单用于加载和保存脚本。
Edit:编辑。此按钮用于打开编辑区域。锁状图标指示代码是否可编辑。
Script edit area:脚本编辑区。点击Edit按钮后显示。此区域用来编写、粘贴和浏览代码。
Lock with Password:使用密码加密。点击后,用户可以输入密码加密脚本,防止他人的查看或篡改。
Title for this Script:脚本标题。用户可以在这里可脚本取名,名称会在标签中显示。脚本名与文件名不一定一致。
Apply:执行。此按钮用于激活脚本。KSP会检查代码的语法,如果没有错误,代码就能顺利执行。代码被修改时,“Apply”按钮旁的指示灯会变橙。
Script status line:脚本状态行。代码出错时,KSP会在此处输出信息指示错误,同时错误代码行会变为高亮色。
Kontakt status line:Kontakt状态行。message()函数生成的消息在此处显示,脚本回放过程中出现的错误也在此显示。函数这一概念会在后面学习。
编程基础
生成MIDI音符:简单伴奏器
现在我们开始学习编程。本章节将介绍最基础但也最重要的知识,它们贯穿着整个编程过程。本章还将概述一些进阶话题,在后续章节中会深入学习。
我们要学习的第一个范例,利用了Kontakt中的一项关键而又强大的功能:人工生成音符。
打开Kontakt,加载乐器,打开脚本编辑器,将下列代码复制并粘贴进脚本编辑器中:
on note play_note(60,120,0,-1) end on
点击“Apply”按钮后,编译器会分析脚本,如果代码没有错误,便可以开始使用程序了。在键盘上演奏音符,每个音符都会有一个伴奏音:力度为120的C3。当你演奏音符时,KSP会对某段代码进行处理,这样的代码被称作回调函数(callback)。上述例子中的回调函数被称作音符回调函数(note callback)。用户演奏音符时,脚本中的某段代码被执行,这段代码就是音符回调函数。“执行”表示每行代码都被KSP从头到尾地执行。
现在我们来逐行分析代码:
on note:标记音符回调函数的开头,它给KSP传达一个指令,演奏音符时执行自身下方的代码。
play_note(60,120,0,-1):KSP执行的第一条指令,即函数。本例中,此函数生成了一个C3音符(音符序号60),力度为120。下方会对此函数做详细介绍。
end on:标记回调函数的结尾。
顾名思义,音符回调函数只能被音符触发,故其他操作不会触发此函数。KSP能识别多种回调函数,之后我们会学习更多。
play_note()中的数字我们还未解释。这些数字被称作参数(parameters),每个函数都离不开参数。参数可能不唯一,本例中的play_note()有四个参数,此函数必须要四个函数才能运行。
play_note()函数的完整定义如下:
通过参阅上表可知:
- 音符序号为60:play_note(60,120,0,-1)
- 力度为120:play_note(60,120,0,-1)
- 采样从头播放:play_note(60,120,0,-1)
- 采样与触发函数的音符同时结束:play_note(60,120,0,-1)
总结
“on note”标记了音符回调函数的开头。回调函数即代码中被“返回调用”(执行)的部分。本例中的函数为音符回调函数,故在音符输入信息传入的时候被执行。编译器从函数的第一行开始解析代码,到“end on”语句为止。“end on”标记了回调函数的结尾。play_note()函数用于人工生成音符。