所有分類
  • 所有分類
  • 宿主
  • 工具
  • 效果器
  • 教程
  • 采樣器
  • 音源
  • 預設采樣
  • 工程模闆
  • 樂譜

Kontakt Script官方教程 – 用戶界面

目錄
[隐藏]

UI控件變量初始化回調函數:創建一個簡單的自動和聲器

現在我們來對前例中的簡單代碼進行拓展:

我們希望打造一個旋鈕,它可以控制伴奏音與原始音符間的距離,标簽爲“Interval”(音程)。請讀者将下列代碼輸入進Kontakt:

on init
  declare ui_knob $Interval (-12,12,1)
  $Interval := 7
end on

on note
  play_note($EVENT_NOTE + $Interval,$EVENT_VELOCITY,0,-1)
end on

現在演奏的音符,都會有一個上方五度的伴奏音。但界面中還有一些改變,請看腳本模塊區域:

出現了一個旋鈕,标簽爲“Interval”。讀者可以嘗試将旋鈕調整爲不同值,此時演奏時的伴奏音就是用戶自定義的了。前例中的八度和音器已經變爲了一個簡單的自動和聲器。

這段代碼是如何運作的呢?我們在用戶界面中創建了一個用戶界面元素(本例中爲旋鈕),我們通過代碼定義了這個旋鈕的範圍:-12~12,初始值爲7,并且KSP會把這個值加給輸入音符的序号,以新值生成音符。

本利包含了三個新概念:init(initialization,初始化回調函數UI控件變量的聲明變量的賦值

on init … end on
初始化回調函數,腳本正确解析後執行。

用戶點擊“Apply”按鈕後,初始化回調函數就會執行。初始化回調函數中包括了初始化操作、變量定義、UI元素等等事宜。因此初始化回調函數隻會被執行一次,音符回調函數則不然。如果用戶想在界面中創建旋鈕,必然要事先定義,但是隻能定義一次。on init标記了此回調函數的開始,end on标記了其的結束。

UI控件變量是一類用戶定義變量。KSP可以區分内建變量用戶定義變量。本例中的旋鈕理論上是一個用戶定義變量,用戶在腳本模塊區域中做出的調整,會影響到變量值。

旋鈕控件的定義法如下:

declare ui_knob $<變量名> (<最大值>,<最小值>,<分度值>)
創建旋鈕

參數的意義會在後面解釋。我們來回頭分析代碼的第三行:

$Interval := 7

“:=”進行賦值操作,用自然語言解釋便是:将7作爲值賦給名爲Interval的變量。

初始化函數執行時,KSP會創建一個旋鈕,初始值爲7。這個值會加在輸入音符的序号中。所以當變量值爲-12時,C3(60)會變成C2(48),因爲$EVENT_NOTE + $Interval equals 60 + (-12)=48。

通過上面的學習,相信讀者已經不難讀懂下面的代碼了:

on init
  declare ui_knob $Interval (-12,12,1)
  $Interval := 7
  declare ui_knob $Velocity (1,127,1)
  $Velocity := 60
end on

on note
  play_note($EVENT_NOTE + $Interval,$Velocity,0,-1)
end on

總結

點擊“Apply”按鈕後,若腳本正确解析,初始化回調函數就會執行。旋鈕是UI控件,即用戶定義變量的一種。UI元素在初始化回調函數中聲明。“:=”是賦值運算符,符号右邊的值被賦給左邊。

 

1
分享海報
需要編曲混音教程、樂譜、工程文件,請聯系微信:audio999555
沒有賬号?注冊  忘記密碼?