最後までお読みいただきありがとうございます!
この記事が気に入ったらシェアをお願いします。
単一の整数値を格納するためのユーザー定義変数の宣言
on init
declare $test
$test := -1
end on
短く書くなら
on init
declare $test := -1
end on
declare %<array-name>[<num-of-elements>]
特定のインデックスに単一の整数値を格納するためのユーザー定義配列の宣言
備考
配列の最大サイズは32768です。
- 要素数は定数で定義する必要がありますが、標準変数は使用できません。
- 1つの値を持つ配列を初期化することができます(下の2番目の例を参照)
on init
declare %presets[10*8] := (...
{1} 8,8,8,0, 0,0,0,0,...
{2} 8,8,8,8, 0,0,0,0,...
{3} 8,8,8,8, 8,8,8,8,...
{4} 0,0,5,3, 2,0,0,0,...
{5} 0,0,4,4, 3,2,0,0,...
{6} 0,0,8,7, 4,0,0,0,...
{7} 0,0,4,5, 4,4,2,2,...
{8} 0,0,5,4, 0,3,0,0,...
{9} 0,0,4,6, 7,5,3,0,...
{10} 0,0,5,6, 4,4,3,2)
end on
同じ配列を値4で初期化する簡単な方法
on init
declare %presets[10*8] := (4)
end on
declare ~<real variable>
単一の実数値を格納するためのユーザー定義変数の宣言
備考
実数は、数値が整数でも小数点を使用して常に定義する必要があります。たとえば、2の代わりに2.0を使用する必要があります
on init
declare ~test := 0.5
end on
declare ?<array-name>[<num-of-elements>]
特定のインデックスに単一の実数値を格納するためのユーザー定義配列の宣言
備考
- 配列の最大サイズは32768です。
- 要素の数は定数の整数値で定義する必要があります。標準の変数は使用できません。
- 1つの値を持つ配列を初期化することができます(下の2番目の例を参照)。
- コマンドarray_equal()とsearch()は、実数の配列では機能しません。
プリセットデータを格納する配列を作成する
on init
declare ?presets[5*4] := (...
{1} 1.0, 1.0, 1.0, 1.0,...
{2} 0.5, 0.7, 0.1, 0.5,...
{3} 1.0, 0.6, 0.6, 0.2,...
{4} 0.0, 0.0, 0.5, 0.3,...
{5} 0.0, 1.0, 0.4, 0.1)
end on
creating an array for storing preset data
1.0resetの値を持つ同じ配列を初期化するpquickの方法を格納するための配列を作成する
on init
declare ?presets[10*8] := (1.0)
end on
declare @<variable-name>
テキストを格納するためのユーザー定義の文字列変数を宣言する
備考
- 整数変数の場合と同じコード行で文字列変数を宣言して定義することはできません。
- 文字列変数を永続化することは可能です。
on init
declare @text
@text := "Last received note number played or released: "
end on
on note
message(@text & $EVENT_NOTE)
end on
on release
message(@text & $EVENT_NOTE)
end on
declare !<array-name>[<num-of-elements>]
指定されたインデックスにテキスト文字列を格納するユーザー定義の文字列配列を宣言する
on init
declare $count
declare !note[12]
declare !name [128]
while ($count < 128)
inc ($count)
end while
end on
on note
message("Note played: " & !name[$EVENT_NOTE])
end on
creating a
declare const $<variable-name>
単一の整数値を格納するためのユーザー定義定数の宣言
備考
- 名前が示すように、定数変数の値は変更されずに読み取られるだけです。
- 定数の名前を大文字にすることは非常に一般的です
定数の作成、プリセット配列作成時の便利な機能
on init
declare const $NUM_OF_PRESETS := 10
declare const $NUM_OF_PARAMETERS := 5
declare %preset_data[$NUM_OF_PRESETS * $NUM_OF_PARAMETERS]
end on
declare const ~<variable-name>
単一の実数値を格納するユーザー定義定数を宣言する
備考
- 名前が示すように、定数変数の値は変更されずに読み取られるだけです。
- 定数の名前を大文字にすることは非常に一般的です
on init
declare const ~BIG_NUMBER := 100000.0
declare const ~SMALL_NUMBER := 0.00001
end on
declare polyphonic $<variable-name>
ノートイベントごとに単一の整数値を格納するためのユーザ定義のポリフォニック変数の宣言
備考
- ポリフォニック変数は、実行されたノートイベントごとに一意の変数として機能し、たとえばwait()を使用するときなどに並行して実行されるコールバックの競合を回避します。
- ポリフォニック変数は、対応するノートのリリースコールバックでその値を保持します。
- ポリフォニック変数は、通常の変数よりもはるかに多くのメモリを必要とします。
- ポリフォニック変数は、ノートコールコールとリリースコールバックでのみ使用する必要があります
on init
declare $counter
declare polyphonic $polyphonic_counter
end on
on note
message($polyphonic_counter & " " & $counter)
inc($counter)
inc($polyphonic_counter)
end on
ポリフォニック変数は常にコールバックごとに一意なので、$ polyphonic_counterは表示されたメッセージでは常に0になります
make_instr_persistent(<variable>)
計測器でのみ変数の値を保持する
備考
make_instr_persistent()はmake_persistent()と似ていますが、変数の値は計測器でのみ保存され、スナップショットでは保存されません。例えば、スナップショットの読み込み時にUI要素が変更されないようにします。
on init
set_snapshot_type(1) {init callback not executed upon snapshot loading}
declare ui_knob $knob_1 (0,2,1)
set_text($knob_1,"Pers.")
make_persistent($knob_1)
declare ui_knob $knob_2 (0,2,1)
set_text($knob_2,"Inst Pers.")
make_instr_persistent ($knob_2)
declare ui_knob $knob_3 (0,2,1)
set_text($knob_3,"Not Pers.")
end on
スナップショットをロードするときに2番目のノブは変更されません
make_persistent(<variable>)
備考
•変数の状態は、パッチ(またはマルチまたはホストチャンク)だけでなく、スクリプトがKONTAKTプリセット(.nkpファイル)として保存されたときにも保存されます。
- 変数の状態は、initコールバックの最後に読み込まれます。 initコールバック内に格納された値を手動でロードするには、read_persistent_var()を使用します。
- on persistenceコールバックを使用して、永続変数の値を取得することもできます
- スクリプトコードをコピーして置き換えてテキストを置換するときは、永続変数の値も保持されます。
- より複雑なスクリプトを扱う場合、スクリプトをリセットして変数を "フラッシュ"したい場合があります。それぞれのスロットに空のスクリプトを適用することで、これを行うことができます。
on init
declare ui_knob $Preset (1,10,1)
make_persistent ($Preset)
end on
ノブのようなユーザーインターフェイス要素は、通常、楽器をリロードするときにその値を保持する必要があります
make_persistent()コマンドで保存された変数の値を直ちにリロードします。
備考
- このコマンドは、initコールバック内でのみ使用できます。
- 変数の状態は、パッチ(またはマルチまたはホストチャンク)だけでなく、スクリプトがKONTAKTプリセット(.nkpファイル)として保存されたときにも保存されます。
- スクリプトコードをコピーして置き換えてテキストを置き換えるときは、永続変数の値も保持されます。
- より複雑なスクリプトを扱う場合、スクリプトをリセットして変数を "フラッシュ"したい場合があります。それぞれのスロットに空のスクリプトを適用することで、これを行うことができます。
- あなたもすることができます
on init
declare ui_label $label (1,1)
declare ui_button $button
set_text($button,"$a := 10000")
declare $a
make_persistent($a)
{read_persistent_var($a)}
set_text ($label,$a)
end on
on ui_control ($button)
$a := 10000
set_text($label,$a)
end on
このスクリプトを適用した後、ボタンをクリックし、NKIを保存して閉じます。再読み込み後、initコールバックの最後で$ aの値が初期化されるため、ラベルには0が表示されます。 read_persistent_varを中心に{}を削除し、スクリプトを再度適用します。 Voila。
Total:3146 Today:1 Yesterday:1 Now:4