| |
|---|---|
| |
|
|
| メニューエントリーのテキストです。 |
| メニューエントリーの値です。 |
メニューエントリーを作成できるのはon initコールバックの中だけですが、そのテキストと値は後からset_menu_item_str()とset_menu_item_value()を使って変更できます。メニューエントリーは好きなだけ追加でき、set_menu_item_visibility()を使って動的に表示・非表示を切り替えられます。
$CONTROL_PAR_VALUEコントロールパラメーターをget_control_par()コマンドで使うと、返るのは現在選択されているメニューのインデックスであり、現在選択されている値ではありません。メニューの値を取得したい場合は、get_menu_item_value()コマンドを使用してください。
on init
declare ui_menu $menu
add_menu_item($menu, "First Entry", 0)
add_menu_item($menu, "Second Entry", 1)
add_menu_item($menu, "Third Entry", 2)
end on
シンプルなメニューです。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
既存のテキストを消さずに、指定した | |
|
|
| 表示するテキストです。 |
on init
declare $count
declare ui_label $label (1, 4)
set_text($label, "")
end on
on note
inc($count)
select ($count)
case 1
set_text($label, $count & ": " & $EVENT_NOTE)
case 2 to 4
add_text_line($label, $count & ": " & $EVENT_NOTE)
end select
if ($count = 4)
$count := 0
end if
end on
直近に演奏された4つのノートを監視します。
| |
|---|---|
| |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| アクセスしたいグループのインデックスです。グループレベルを使用しない場合は-1に設定します。 |
| アクセスしたいFXスロットのインデックスです。FXスロットにアクセスしない場合は-1に設定します。 |
| レベルメーターが表示するオーディオチャンネルを設定するには、0から15を選択します。 |
| 次のいずれかを指定できます。
|
レベルメーターは、インストゥルメントバスの出力やインストゥルメントのメイン出力に取り付けられます。また、コンプレッサーやリミッターのエフェクトに取り付けてゲインリダクションのデータを表示することもでき、$CONTROL_PAR_RANGE_MINと$CONTROL_PAR_RANGE_MAXコントロールパラメーターを使って表示の最小値と最大値を設定したり、表示を反転させたりできます。
on init
declare const $GROUP_IDX := 0
declare const $BUS_IDX := 0
declare const $SLOT_IDX := 0
declare const $CHANNEL_L := 0
declare const $CHANNEL_R := 1
declare ui_label $InstOutputL (1, 1)
declare ui_label $InstOutputR (1, 1)
declare ui_label $BusOutput (1, 1)
declare ui_label $MainFX (1, 1)
declare ui_label $BusFX (1, 1)
declare ui_label $GroupFX (1, 1)
declare ui_level_meter $inst_output_l_lvl
declare ui_level_meter $inst_output_r_lvl
declare ui_level_meter $bus_output_lvl
declare ui_level_meter $mainfx_output_lvl
declare ui_level_meter $busfx_output_lvl
declare ui_level_meter $groupfx_output_lvl
attach_level_meter(get_ui_id($inst_output_l_lvl), -1, -1, $CHANNEL_L, -1)
attach_level_meter(get_ui_id($inst_output_r_lvl), -1, -1, $CHANNEL_R, -1)
attach_level_meter(get_ui_id($bus_output_lvl), -1, -1, $CHANNEL_L, $BUS_IDX)
attach_level_meter(get_ui_id($mainfx_output_lvl), -1, $SLOT_IDX, $CHANNEL_L, -2)
attach_level_meter(get_ui_id($busfx_output_lvl), -1, $SLOT_IDX, $CHANNEL_L, $BUS_IDX)
attach_level_meter(get_ui_id($groupfx_output_lvl), $GROUP_IDX, $SLOT_IDX, $CHANNEL_L, -1)
end on
さまざまなレベルメーターです。
特定のUIウィジェット:$CONTROL_PAR_BG_COLOR、$CONTROL_PAR_OFF_COLOR、$CONTROL_PAR_ON_COLOR、$CONTROL_PAR_OVERLOAD_COLOR、$CONTROL_PAR_PEAK_COLOR、$CONTROL_PAR_VERTICAL、$CONTROL_PAR_RANGE_MIN、$CONTROL_PAR_RANGE_MAX
| |
|---|---|
対応するZoneを波形に接続し、 | |
|
|
| 取り付けたいZoneのID番号です。 |
| 次のフラグを使って、ウィジェットのさまざまな設定を制御できます。
|
フラグを組み合わせるには、ビット単位の.or.演算子を使用します。
$UI_WAVEFORM_USE_TABLEと$UI_WAVEFORM_USE_MIDI_DRAGのフラグは、$UI_WAVEFORM_USE_SLICESがすでに設定されている場合にのみ機能します。
on init
declare ui_waveform $Waveform (6, 6)
attach_zone ($Waveform,find_zone(”Test”), $UI_WAVEFORM_USE_SLICES .or. $UI_WAVEFORM_USE_TABLE)
end on
“Test”という名前のZoneをui_waveformウィジェットに取り付け、そのZoneのスライスとテーブルも表示します。
ゾーンとスライスの関数:find_zone()
特定のUIウィジェット:Waveform Flag Constants、Waveform Property Constants
|
|---|
5つのスクリプトスロットすべてで宣言されたUIウィジェットをすべて公開し、Komplete UIのパラメーターとして利用できるようにします。 |
このコマンドはon initコールバックでのみ使用できます。
すべてのUIウィジェットは、識別子($や%のような変数型の記号を除いた名前)だけを介して公開されます。
複数のスクリプトスロットが同じ識別子を使用している場合、最初のものだけが考慮されます。
公開されたすべてのコントロールの一覧は、Instrumentを選択してEdit viewの外にいるときに、KontaktのMonitor → Parameterペインで確認できます。
詳しくはKomplete UIのドキュメントをご覧ください。
on init
make_perfview
set_ui_width_px(1000)
set_ui_height_px(500)
load_komplete_ui(“main”)
expose_controls
declare ui_slider $Foo (0, 100)
declare ui_switch $Bar
make_persistent($Foo)
make_persistent($Bar)
end on
Komplete UIのファイルを読み込み、パフォーマンスビューのサイズと表示を設定し、いくつかのUIウィジェットをKomplete UIのパラメーターおよび永続状態として公開します。
| |
|---|---|
| |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 0: 拡張子なしのファイル名を返します。 1: 拡張子付きのファイル名を返します。 2: パス全体を返します。 |
このコマンドはon ui_controlコールバックのうち、ui_file_selectorsのものでのみ使用できます。
Kontaktで絶対ファイルパスを扱うときは、必ずスラッシュ(/)を使用してください。
| |
|---|---|
ui_file_selectorウィジェット内の前後のファイルにジャンプし、そのコールバックをトリガーします。 | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 0: 前のファイル(現在選択されているものとの関係で)が選択されます 1: 次のファイル(現在選択されているものとの関係で)が選択されます |
このコマンドはon ui_controlコールバックのうち、ui_file_selectorsのものでのみ使用できます。
指定したui_file_selectorのUIコールバックを必ず呼び出します。
| |
|---|---|
指定したUIウィジェットのさまざまなパラメーターを取得します。 | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 取得したいUIウィジェットのパラメーターです。例: |
get_control_par_str()は、文字列を扱うためのこのコマンドの別バージョンです(例:ui_labelからテキストを取得したり、ui_sliderからオートメーション名を取得したりする場合)。
on init
declare ui_value_edit $Test (0, 100, 1)
message(get_control_par(get_ui_id($Test), $CONTROL_PAR_WIDTH))
end on
値入力欄の幅をピクセル単位で取得します。
一般:$CONTROL_PAR_KEY_SHIFT、$CONTROL_PAR_KEY_ALT、$CONTROL_PAR_KEY_CONTROL
| |
|---|---|
指定したUIウィジェットのさまざまなパラメーターを取得します | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 取得したいUIウィジェットのパラメーターです。例: |
| 取得したいUIウィジェットの配列インデックスです。 |
get_control_par_arr()には、さらに2つのバージョンがあります。
on init
declare ui_xy ?XY1[2]
declare ui_xy ?XY2[2]
declare ui_xy ?XY3[2]
declare ui_xy ?XY4[2]
declare ui_button $Random
declare $i
declare ~val
end on
on ui_control ($Random)
$i := 0
while ($i < 8)
{ randomize X axis value }
~val := int_to_real(random(0, 1000000)) / 1000000.0
set_control_par_real_arr(get_ui_id(?XY1) + $i / 2, $CONTROL_PAR_VALUE, ~val, $i mod 2)
{ randomize Y axis value }
~val := int_to_real(random(0, 1000000)) / 1000000.0
set_control_par_real_arr(get_ui_id(?XY1) + $i / 2, $CONTROL_PAR_VALUE, ~val, ($i mod 2) + 1)
inc($i)
end while
$Random := 0
end on
1つのループで4つの異なるXYパッドの最初のカーソルの値をランダム化します。
一般:$CONTROL_PAR_KEY_SHIFT、$CONTROL_PAR_KEY_ALT、$CONTROL_PAR_KEY_CONTROL
| |
|---|---|
画像ファイルをもとにしたカスタムフォント用に生成されたフォントIDを返します。このフォントIDは、動的なテキスト要素を持つあらゆるコントロールで使用できます。 | |
| 拡張子を除いた画像の名前です。画像はPNG形式で、リソースコンテナの"pictures"サブフォルダーに置く必要があります。 |
このコマンドはon initコールバックでのみ使用できます。
カスタムフォント用の画像は、カスタムフォントとして正しく解釈されるように特別な形式にする必要があります。すべての文字はWindows-1252文字セットに従って横に並べて配置し、各文字フレームの左上に完全な赤(#FF0000)のピクセルを置きます。また、この画像のアルファレイヤーはソリッド(1色のみを含む)である必要があります。Adobe Photoshop用のSuperPNGアドオン(書き出し時に"Clean Transparent"オプションを使用)、またはFigma用のKSP Font Generatorプラグインの使用をおすすめします。
注意:フォント画像を変更したあとはKontaktを再起動する必要があります。スクリプトを再適用するだけでは不十分です。
on init
declare ui_text_edit @textEdit
set_control_par(get_ui_id(@textEdit), $CONTROL_PAR_FONT_TYPE, get_font_id("Font1"))
end on
ui_text_editコントロールでカスタムフォントを使用します。
一般:$CONTROL_PAR_FONT_TYPE
| |
|---|---|
特定の | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニュー項目のインデックス(値ではありません!)です。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
on init
declare ui_button $button
declare ui_menu $menu
add_menu_item($menu, "First Entry", 0)
add_menu_item($menu, "Second Entry", 5)
add_menu_item($menu, "Third Entry", 10)
end on
on ui_control ($button)
message(get_menu_item_str(get_ui_id($menu), 1))
end on
ボタンをクリックすると“Second Entry”というメッセージが表示されます。メニュー項目のインデックス1のテキストを読み取っているためです。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
特定のui_menuエントリーの値を返します。 | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニュー項目のインデックス(値ではありません!)です。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
on init
declare ui_button $button
declare ui_menu $menu
add_menu_item($menu, "First Entry", 0)
add_menu_item($menu, "Second Entry", 5)
add_menu_item($menu, "Third Entry", 10)
end on
on ui_control ($button)
message(get_menu_item_value(get_ui_id($menu), 1))
end on
メニュー項目のインデックス1の値を読み取っているため、数値5が表示されます。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
特定のui_menuエントリーが表示されている場合は1を、そうでない場合は0を返します。 | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニューエントリーのインデックス(値ではありません!)です。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
on init
declare ui_button $visibility
declare ui_button $value
declare ui_menu $menu
add_menu_item($menu, "First Entry", 0)
add_menu_item($menu, "Second Entry", 5)
add_menu_item($menu, "Third Entry", 10)
end on
on ui_control ($visibility)
set_menu_item_visibility(get_ui_id($menu), 1, $visibility)
end on
on ui_control ($value)
message(get_menu_item_visibility(get_ui_id($menu), 1))
end on
Visibilityボタンをクリックすると2番目のメニューエントリーの表示・非表示が切り替わり、Valueボタンをクリックすると同じメニューエントリーの表示状態が表示されます。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
|
|---|
UIウィジェットのUI ID番号を取得します。 |
UI IDは、スクリプトで最初に宣言された変数または定数から順番に割り当てられ、32768から始まります。
通常の変数や定数(UIウィジェットではないもの)にもUI IDが割り当てられますが、このIDはさまざまなget_control_par()/set_control_par()コマンドでは使用できません。
on init
declare const $NUM_KNOBS := 4
declare ui_knob $Knob_1 (0, 100, 1)
declare ui_knob $Knob_2 (0, 100, 1)
declare ui_knob $Knob_3 (0, 100, 1)
declare ui_knob $Knob_4 (0, 100, 1)
declare ui_value_edit $Set (0, 100, 1)
declare $i
declare %ID[$NUM_KNOBS]
while ($i < $NUM_KNOBS)
%ID[$i] := get_ui_id($Knob_1) + $i
inc($i)
end while
end on
on ui_control ($Set)
$i := 0
while ($i < $NUM_KNOBS)
set_control_par(%ID[$i], $CONTROL_PAR_VALUE, $Set)
inc($i)
end while
end on
IDを配列に格納し、そのIDを使って複数のノブを同じ値に設定します。
| |
|---|---|
| |
|
|
| 次のプロパティを使用できます。
|
| スライスのインデックスです。 |
on init
declare $play_pos
declare ui_waveform $Waveform (6, 6)
attach_zone($Waveform, find_zone("Test"), 0)
end on
on note
while ($NOTE_HELD = 1)
$play_pos := get_event_par($EVENT_ID, $EVENT_PAR_PLAY_POS)
set_ui_wf_property($Waveform, $UI_WF_PROP_PLAY_CURSOR, $play_pos)
message(get_ui_wf_property($Waveform, $UI_WF_PROP_PLAY_CURSOR, 0))
wait(10000)
end while
end on
現在の再生位置の値を表示します。
ゾーンとスライスの関数:find_zone()
特定のUIウィジェット:Waveform Flag Constants、Waveform Property Constants
| |
|---|---|
さまざまなウィジェットの特定の部分を隠します。 | |
| ウィジェットの変数名です。 |
| UIコントロールのさまざまな部分の表示状態を表すビットマスクで、次の定数で構成されます。
|
on init
declare ui_knob $Knob (0, 100, 1)
hide_part($Knob, $HIDE_PART_BG .or. $HIDE_PART_MOD_LIGHT .or. $HIDE_PART_TITLE .or. $HIDE_PART_VALUE)
end on
裸のノブです。
on init
declare ui_label $label_1 (1, 1)
set_text($label_1, "Small Label")
hide_part($label_1, $HIDE_PART_BG)
end on
ラベルの背景を隠します。これは他のUI要素でも可能です。
特定のUIウィジェット:$CONTROL_PAR_HIDE、$HIDE_PART_NOTHING、$HIDE_WHOLE_CONTROL
| |
|---|---|
Creator ToolsのGUI Designerで作成したパフォーマンスビューファイル(.nckp)を読み込みます。 | |
| 拡張子を除いた.nckpファイルのファイル名を、文字列として入力します。 |
スクリプトスロット1つにつき読み込める.nkcpパフォーマンスビューファイルは1つだけです。
このコマンドはon initコールバックでのみ使用できます。
このコマンドはmake_perfviewと併用できません。
パフォーマンスビューファイル(.nkcp)は、リソースコンテナのperformance_viewサブフォルダーに置く必要があります。
含まれるすべてのコントロールは、KSPで宣言・設定されたものと同じようにアクセスできます。変数名はCreator Toolsで確認できます。
詳しくはCreator Toolsマニュアルをご覧ください。
on init
load_performance_view(“performanceView”)
end on
on ui_control ($testButton)
if ($testButton = 0)
set_control_par(get_ui_id($testSlider), $CONTROL_PAR_HIDE, $HIDE_PART_WHOLE_CONTROL)
else
set_control_par(get_ui_id($testSlider), $CONTROL_PAR_HIDE, $HIDE_PART_NOTHING)
end if
end on
パフォーマンスビューファイルを読み込み、その中に含まれる2つのコントロールに関する基本的な動作を定義します。
|
|---|
対応するスクリプトスロットのパフォーマンスビューを有効にします。 |
このコマンドはon initコールバックでのみ使用できます。
load_performance_view()コマンドと併用できません。
on init
message("")
make_perfview
set_script_title("My Cool Instrument")
set_ui_height(6)
end on
多くのKSPスクリプトはこのように始まります。
| |
|---|---|
UIウィジェットをKontaktの標準グリッドに配置します。 | |
| UIウィジェットの変数名です。 |
| ウィジェットの水平位置をグリッド単位で指定します(0 ... 6)。 |
| ウィジェットの垂直位置をグリッド単位で指定します(0 ... 16)。 |
move_control()はすべてのコールバックで使用できます。
move_control()をon initコールバックの外で使用するとCPU負荷が高くなるので、注意して扱ってください。
move_control(<variable>, 0, 0)はUIウィジェットを隠します。
ピクセルベースのコントロールパラメーターとグリッドベースのものは混在させられません。そのため、グリッド座標(2, 1)に配置したui_labelに$CONTROL_PAR_WIDTHを設定しようとしても機能しません。代わりに$CONTROL_PAR_GRID_WIDTHを使用する必要があります。
on init
set_ui_height(3)
declare ui_label $label (1, 1)
set_text($label, "Move the wheel!")
move_control($label, 3, 6)
end on
on controller
if ($CC_NUM = 1)
move_control($label, 3, 6 - ((%CC[1] * 5) / 127))
end if
end on
モジュレーションホイールでUI要素を移動します。
一般:$CONTROL_PAR_HIDE
| |
|---|---|
UIウィジェットをピクセル単位で配置します。 | |
| UIウィジェットの変数名です。 |
| ウィジェットの水平位置をピクセル単位で指定します(0 ... 1000)。 |
| ウィジェットの垂直位置をピクセル単位で指定します(0 ... 750)。 |
ピクセルベースのコントロールパラメーターとグリッドベースのものは混在させられません。そのため、グリッド座標(2, 1)に配置したui_labelに$CONTROL_PAR_WIDTHを設定しようとしても機能しません。代わりに$CONTROL_PAR_GRID_WIDTHを使用する必要があります。
move_control_px()はすべてのコールバックで使用できます。
move_control_px()をon initコールバックの外で使用するとCPU負荷が高くなるので、注意して扱ってください。
Kontaktの標準グリッドサイズをピクセル位置に対応させるには、次の式を使用できます。
X位置:((grid_value - 1) * 92) + 66
Y位置:((grid_value - 1) * 21) + 2
幅($CONTROL_PAR_WIDTH):(grid_value * 92) - 5
高さ($CONTROL_PAR_HEIGHT):(grid_value * 21) - 3
on init
declare ui_label $label (1, 1)
set_text($label, "Move the wheel!")
move_control_px($label, 66, 2)
end on
on controller
if ($CC_NUM = 1)
move_control_px($label, 66 + %CC[1], 2)
end if
end on
CC値をピクセル位置に変換します。参考になるかもしれません。
一般:$CONTROL_PAR_POS_X、$CONTROL_PAR_POS_Y
| |
|---|---|
UIウィジェットにカーソルを合わせたときに表示されるテキスト文字列を割り当てます。このテキストはKontaktのinfo paneに表示されます。 | |
| UIウィジェットの変数名です。 |
| 表示するインフォテキストです。 |
使用するテキスト文字列は最大320文字です。
on init
declare ui_knob $Knob (0, 100, 1)
set_control_help($Knob, "I'm the only knob, folks!")
end on
set_control_help()の動作例です。
一般:
$CONTROL_PAR_HELP
| |
|---|---|
指定したUIウィジェットのさまざまなパラメーターを変更します。 | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 設定したいUIコントロールのパラメーターです。例: |
| 設定したいコントロールパラメーターの値です。 |
set_control_par_str()は、文字列を扱うためのこのコマンドの別バージョンです(例:ui_labelのテキストを設定したり、ui_sliderのオートメーション名を設定したりする場合)。
on init
declare ui_value_edit $test (0, 100, $VALUE_EDIT_MODE_NOTE_NAMES)
set_text($test,"")
set_control_par(get_ui_id($test), $CONTROL_PAR_WIDTH, 45)
move_control_px($test, 100, 10)
end on
値入力欄の幅を45ピクセルに変更します。ピクセルベースのコントロールパラメーターを使う場合は、その位置もピクセル単位で指定する必要があることに注意してください。
on init
declare ui_label $test (1, 1)
set_control_par_str(get_ui_id($test), $CONTROL_PAR_TEXT, "This is Text")
set_control_par(get_ui_id($test), $CONTROL_PAR_TEXT_ALIGNMENT, 1)
end on
ラベルのテキストを設定して中央に配置します。
| |
|---|---|
配列ベースのUIウィジェット内の要素のさまざまなパラメーターを変更します。例: | |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| 設定したいUIウィジェットのパラメーターです。例: |
| 設定したいコントロールパラメーターの値です。 |
| 設定したいUIコントロールの配列インデックスです。 |
set_control_par_arr()には、さらに2つのバージョンがあります。
on init
make_perfview
set_ui_height_px(350)
declare ui_xy ?myXY[4]
declare $xyID
$xyID := get_ui_id(?myXY)
set_control_par_arr($xyID, $CONTROL_PAR_AUTOMATION_ID, 0, 0)
set_control_par_arr($xyID, $CONTROL_PAR_AUTOMATION_ID, 1, 1)
set_control_par_arr($xyID, $CONTROL_PAR_AUTOMATION_ID, 2, 2)
set_control_par_arr($xyID, $CONTROL_PAR_AUTOMATION_ID, 3, 3)
set_control_par_str_arr($xyID, $CONTROL_PAR_AUTOMATION_NAME, "Cutoff", 0)
set_control_par_str_arr($xyID, $CONTROL_PAR_AUTOMATION_NAME, "Resonance", 1)
set_control_par_str_arr($xyID, $CONTROL_PAR_AUTOMATION_NAME, "Delay Pan", 2)
set_control_par_str_arr($xyID, $CONTROL_PAR_AUTOMATION_NAME, "Delay Feedback", 3)
end on
2つのカーソルを持つXYパッドのオートメーションIDと名前を設定します。
一般:$CONTROL_PAR_AUTOMATION_ID、$CONTROL_PAR_AUTOMATION_NAME
特定のUIウィジェット:$CONTROL_PAR_CURSOR_PICTURE、$HIDE_PART_CURSOR
|
|---|
|
ui_sliderにデフォルト値を割り当てるには、set_control_par()と$CONTROL_PAR_DEFAULT_VALUEコントロールパラメーターを使用します。
on init
declare ui_knob $Knob (-100, 100, 0)
set_knob_defval($Knob, 0)
$Knob := 0
declare ui_slider $Slider (-100, 100)
set_control_par(get_ui_id($Slider), $CONTROL_PAR_DEFAULT_VALUE, 0)
$Slider := 0
end on
ノブとスライダーにデフォルト値を割り当てます。
一般:$CONTROL_PAR_DEFAULT_VALUE
|
|---|
|
on init
declare !rate_names[18]
!rate_names[ 0] := "1/128"
!rate_names[ 1] := "1/64"
!rate_names[ 2] := "1/32"
!rate_names[ 3] := "1/16 T"
!rate_names[ 4] := "1/32 D"
!rate_names[ 5] := "1/16"
!rate_names[ 6] := "1/8 T"
!rate_names[ 7] := "1/16 D"
!rate_names[ 8] := "1/8"
!rate_names[ 9] := "1/4 T"
!rate_names[10] := "1/8 D"
!rate_names[11] := "1/4"
!rate_names[12] := "1/2 T"
!rate_names[13] := "1/4 D"
!rate_names[14] := "1/2"
!rate_names[15] := "1/1 T"
!rate_names[16] := "1/2 D"
!rate_names[17] := "1/1"
declare ui_knob $Rate (0, 17, 1)
set_knob_label($Rate, !rate_names[$Rate])
end on
on persistence_changed
set_knob_label($Rate, !rate_names[$Rate])
end on
on ui_control ($Rate)
set_knob_label($Rate, !rate_names[$Rate])
end on
リズムの値を表示するのに便利です。
一般:$CONTROL_PAR_LABEL
|
|---|
|
on init
declare ui_knob $Time (0, 1000, 10)
set_knob_unit($Time, $KNOB_UNIT_MS)
declare ui_knob $Octave (1, 6, 1)
set_knob_unit($Octave, $KNOB_UNIT_OCT)
declare ui_knob $Volume (-600, 600, 100)
set_knob_unit($Volume, $KNOB_UNIT_DB)
declare ui_knob $Scale (0, 100, 1)
set_knob_unit($Scale, $KNOB_UNIT_PERCENT)
declare ui_knob $Tune (4300, 4500, 10)
set_knob_unit($Tune, $KNOB_UNIT_HZ)
end on
さまざまなノブの単位記号です。
一般:$CONTROL_PAR_UNIT
| |
|---|---|
| |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニュー項目のインデックスです。 |
| 選択したメニュー項目に設定したいテキストです。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
on init
declare ui_menu $menu
declare ui_button $button
add_menu_item ($menu, "First Entry", 0)
add_menu_item ($menu, "Second Entry", 5)
add_menu_item ($menu, "Third Entry", 10)
end on
on ui_control ($button)
set_menu_item_str(get_ui_id($menu), 1, "Renamed")
end on
2番目のメニューエントリーの名前を変更します。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
| |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニュー項目のインデックスです。 |
| メニュー項目に与えたい値です。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
<value>は、add_menu_item()コマンドの3番目のパラメーターで設定します。
on init
declare ui_menu $menu
add_menu_item ($menu, "First Entry", 0)
add_menu_item ($menu, "Second Entry", 5)
add_menu_item ($menu, "Third Entry", 10)
set_menu_item_value(get_ui_id($menu), 1, 20)
end on
2番目のメニューエントリーの値を20に変更します。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
| |
| UIウィジェットのID番号です。get_ui_id()で取得できます。 |
| メニュー項目のインデックスです。 |
| 0(非表示)または1(表示)に設定します。 |
<index>は、on initコールバック内でメニュー項目が追加された順序によって決まり、後から変更することはできません。
必要になりそうなだけのメニューエントリーをon initコールバック内で追加し、set_menu_item_visibility()を使って動的に表示・非表示を切り替えます。
現在選択されているメニュー項目を非表示に設定した場合、その項目は選択が解除されるまで表示されたままになります。
on init
declare ui_menu $menu
declare ui_button $button
add_menu_item ($menu, "First Entry", 0)
add_menu_item ($menu, "Second Entry", 5)
add_menu_item ($menu, "Third Entry", 10)
end on
on ui_control ($button)
set_menu_item_visibility(get_ui_id($menu), 1, $button)
end on
ボタンで2番目のメニューエントリーを隠します。
特定のUIウィジェット:$CONTROL_PAR_SELECTED_ITEM_IDX、$CONTROL_PAR_NUM_ITEMS
| |
|---|---|
| |
|
|
| 表示されるステップの数です。 |
on init
declare ui_table %table[32] (5, 4, 127)
declare ui_value_edit $Steps (2, 32, 1)
$Steps := 16
set_table_steps_shown(%table, $Steps)
end on
on ui_control($Steps)
set_table_steps_shown(%table, $Steps)
end on
表示されるステップ数を変更します。
|
|---|
スクリプトのタイトルを設定します。 |
このコマンドは、手動で設定されたスクリプトタイトルを上書きします。
on init
message("")
make_perfview
set_script_title("My Cool Instrument")
set_ui_height(6)
end on
多くのパフォーマンスビュースクリプトはこのように始まります。
|
|---|
選択した背景画像ファイルを、指定したピクセル数だけオフセットします。 |
背景に使用するPNGファイルが設定されていて、パフォーマンスビューの最大高さより大きい場合は、このコマンドで背景グラフィックをオフセットできます。これにより、1つの画像ファイルだけを使いながら、スクリプトスロットごとに別々の背景を作成できます。
on init
make_perfview
set_ui_height(1)
end on
on controller
if ($CC_NUM = 1)
set_skin_offset(%CC[1])
end if
end on
|
|---|
|
on init
declare ui_label $label_1 (1, 1)
set_text($label_1, "Small Label")
declare ui_label $label_2 (3, 6)
set_text($label_2, "Big Label")
add_text_line($label_2, "...with a second text line")
end on
サイズの異なる2つのラベルです。
on init
declare ui_label $label_1 (1, 1)
set_text ($label_1, "Small Label")
hide_part ($label_1, $HIDE_PART_BG)
end on
ラベルの背景を隠します。これは他のウィジェットでも可能です。
set_control_par():set_control_par_str()
一般:$CONTROL_PAR_TEXT
| |
|---|---|
パフォーマンスビューのメイン背景色を設定します。 | |
| 16進数のカラー値を次の形式で指定します。
先頭の0は、その値が数値であることをKontaktに伝えます。 末尾のhは、それが16進数の値であることを示します。大文字のHも使用できます。 |
このコマンドはすべてのコールバックで使用できます。
on init
make_perfview
set_ui_color(0000000H)
end on
真っ黒に塗ります。
| |
|---|---|
スクリプトのパフォーマンスビューの高さをグリッド単位で設定します。 | |
| スクリプトの高さをグリッド単位で指定します(1 ... 8)。 |
このコマンドはon initコールバックでのみ使用できます。
on init
message("")
make_perfview
set_script_title("My Cool Instrument")
set_ui_height(6)
end on
多くのパフォーマンスビュースクリプトはこのように始まります。
| |
|---|---|
スクリプトのパフォーマンスビューの高さをピクセル単位で設定します。 | |
| スクリプトの高さをピクセル単位で指定します(50 ... 750)。 |
このコマンドはon initコールバックでのみ使用できます。
on init
make_perfview
declare const $SIZE := 1644 { picture height }
declare const $NUM_FRAMES := 4
declare const $HEADER_SIZE := 68
declare ui_value_edit $Slide (1, $NUM_SLIDES, 1)
set_ui_height_px(($SIZE / $NUM_FRAMES) - $HEADER_SIZE)
set_skin_offset(($Slide - 1) * ($SIZE / $NUM_FRAMES))
end on
on ui_control ($Slide)
set_skin_offset(($Slide - 1) * ($SIZE / $NUM_FRAMES))
end on
| |
|---|---|
スクリプトのパフォーマンスビューの幅をピクセル単位で設定します。 | |
| スクリプトの幅をピクセル単位で指定します(633 ... 1000)。 |
このコマンドはon initコールバックでのみ使用できます。
on init
make_perfview
set_ui_height_px(750)
set_ui_width_px(1000)
end on
可能な限り最大のサイズでパフォーマンスビューを作成します。
| |
|---|---|
| |
|
|
| 次のプロパティを使用できます。
|
| 選択したプロパティが適用されるスライスのインデックスです。
|
| 選択したプロパティの値です。 |
on init
declare $play_pos
declare ui_waveform $Waveform (6, 6)
attach_zone($Waveform, find_zone("Test"), 0)
end on
on note
while ($NOTE_HELD = 1)
$play_pos := get_event_par($EVENT_ID, $EVENT_PAR_PLAY_POS)
set_ui_wf_property($Waveform, $UI_WF_PROP_PLAY_CURSOR, 0, $play_pos)
wait(10000)
end while
end on
“Test”という名前のZoneを波形ディスプレイに取り付け、ノートを演奏している間、波形の中に再生カーソルを表示します。
ゾーンとスライスの関数:find_zone()
特定のUIウィジェット:Waveform Flag Constants、Waveform Property Constants
参照元情報:User Interface Commands
https://docs.native-instruments.com/online-guides/ksp-manual/en/user-interface-commands