Kontakt Script官方教程 – 音组管理

目录
[隐藏]

音组管理

如果一个乐器中有多个音组,通过下面的这些函数,用户可以通过代码控制音组:

disallow_group(<音组索引>) 禁用特定的音组
allow_group(<音组索引>) 激活特定的索引
find_group(<音组名>) 返回特定音组的索引
group_name(<音组索引>) 返回特定音组的名称

每个音组都有独立的索引。音组索引从0开始编号,到音组数量-1为止。如果用户不知道某一音组的索引,可以使用find_group()指令,在双引号内输入音组的名字,其索引就会被返回。group_name()的工作方式恰好相反。

默认情况下所有音组都处于激活状态。如果用户只想保留一个音组,最好是先使用disallow_group($ALL_GROUPS)。$ALL_GROUPS是内建变量,内编了所有音组的地址。所有音组都禁用之后,再使用allow_group()命令,例如激活第一组:allow_group(0)。

$ALL_GROUPS
在disallow_group()和allow_group()函数中提供所有音组的地址
on note
  disallow_group($ALL_GROUPS)
  allow_group(find_group("piano_1"))
end on

发生中的音组不能修改。

还有一个内建阵列也非常有用:%GROUPS_AFFECTED

%GROUPS_AFFECTED
音组受到当前的音符输入或释放事件影响后,可以使用%GROUPS_AFFECTED调取这些音组的索引

此函数可以用于调取当前事件影响的音组数量:num_elements(%GROUPS_AFFECTED)。

$NUM_GROUPS也是一个十分有用的内建变量:

$NUM_GROUPS
乐器的总音组数量

此变量返回乐器中的音组总数,若想声明一个下拉菜单,其中包含所有音组名,那么$NUM_GROUPS就非常有用了:

on init
  declare $count
  declare ui_menu $group_menu
  while ($count < $NUM_GROUPS)
    add_menu_item ($group_menu,group_name($count),$count)
    inc($count)
  end while
end on

如果用户修改了音组的数目或者名称,这些改动不会立马体现。这时点击Apply按钮,或者保存后加载乐器可以应用改变。

0

评论0

请先

没有账号? 忘记密码?