KSP Callbacks 日本語訳と実例

KSP Reference ManualのDL(正規サイト)



p.004 on controller

CC、ピッチベンド、またはチャンネル圧力メッセージが受信されるたびに実行されるMIDIコントローラコールバック
画像の説明

on controller
if (in_range($CC_NUM,0,127))
message("CC Number: "& $CC_NUM&" - Value: " & %CC[$CC_NUM])
else
if ($CC_NUM = $VCC_PITCH_BEND)
message("Pitchbend" & " - Value: " & %CC[$CC_NUM])
end if
if ($CC_NUM = $VCC_MONO_AT)
message("Channel Pressure" &" - Value: "&%CC[$CC_NUM])
end if
end if
end on


p.005 on init

スクリプトが正常に解析されたときに実行される初期化コールバック

備考
initコールバックは次の場合に実行されます:

  • スクリプトエディタで[適用]ボタンをクリックする
  • スクリプトプリセットまたは楽器をロードする
  • Monitor / Engineタブの再起動ボタンまたはKONTAKTのヘッダーの再起動ボタンをクリックして、KONTAKTのオーディオエンジンを再起動します。
  • set_snapshot_type()を0に設定してスナップショットをロードする

画像の説明

on init
declare ui_button $Sync
declare ui_menu $time
add_menu_item ($time,"16th",0)
add_menu_item ($time,"8th",1)
$Sync := 0 {sync is off by default, so hide menu}
move_control ($time,0,0)
move_control ($Sync,1,1)
make_persistent ($Sync)
make_persistent ($time)
read_persistent_var ($Sync)
if ($Sync = 1)
move_control ($time,2,1)
else
move_control ($time,0,0)
end if
end on
on ui_control ($Sync)
if ($Sync = 1)
move_control ($time,2,1)
else
move_control ($time,0,0)
end if
end on


p.007 on listener

定義可能な時間間隔で、またはトランスポート・コマンドが受信されるたびに実行されるリスナー・コールバック

備考
リスナーコールバックは、set_listener()コマンドで定義された時間間隔で実行されます。また、ホストのトランスポート開始および停止コマンドに反応することもできます。これは、シーケンサー、アルペジエーター、MIDIファイルプレーヤーなどのように同期されたテンポのための理想的なコールバックになります。

  • ダニを省略することができます。

画像の説明

on init
declare ui_knob $Test (0,99,1)
declare $direction
declare $tick_counter
set_listener($NI_SIGNAL_TIMER_MS,10000)
end on
on listener
if ($NI_SIGNAL_TYPE = $NI_SIGNAL_TIMER_MS)
if ($direction = 0)
inc($tick_counter)
else
dec($tick_counter)
end if
$Test := $tick_counter
if ($tick_counter = 99)
$direction := 1
end if
if ($tick_counter = 0)
$direction := 0
end if
end if
end on


p.008 on note

ノートオンメッセージが受信されるたびに実行されるノートコールバック
画像の説明

on note
message("Note Nr: " & $EVENT_NOTE & " - Velocity: " & $EVENT_VELOCITY)
end on


p.009 on persistence_changed

initコールバックの後、またはスナップショットがロードされるたびに実行される

備考
on persistence_changedコールバックは、永続変数が計測器内で変化するたびに呼び出されます。つまり、initコールバックが呼び出された後、および/またはスナップショットのロード時に常に実行されます。
画像の説明

on init
set_snapshot_type(1) {init callback not executed upon snapshot loading}
reset_ksp_timer
declare $init_flag {1 if init callback has been executed, 0 otherwise}
$init_flag := 1
declare ui_label $label (2,2)
set_text($label,"init callback " & $KSP_TIMER)
end on
function add_text
add_text_line($label,"persistence_changed callback " & $KSP_TIMER)
end function
on persistence_changed
if ($init_flag = 1) {instrument has been loaded}
call add_text
else {snapshot has been loaded}
set_text($label,"Snapshot loaded")
end if
$init_flag := 0
end on


p.010 on pgs_changed

任意のスクリプトでpgs_set_key_val()コマンドが実行されるたびに実行される


備考
PGSはProgram Global Storageの略で、スクリプトスロット間の通信手段です。詳細は、PGSの章を参照してください。

画像の説明

on init
declare ui_knob $First (0,100,1)
declare ui_table %Next[128] (5,2,100)
end on
on pgs_changed
{checks if FIRST_KEY and NEXT_KEY have been declared}
if(pgs_key_exists(FIRST_KEY) and pgs_key_exists(NEXT_KEY))
$First := pgs_get_key_val(FIRST_KEY,0)
%Next[0] := pgs_get_key_val(NEXT_KEY,0)
%Next[127] := pgs_get_key_val(NEXT_KEY,127)
end if
end on

スクリプトスロットの順序にかかわらず、この例のコントロールが変更されます。

画像の説明

on init
pgs_create_key(FIRST_KEY, 1) {defines a key with 1 element}
pgs_create_key(NEXT_KEY, 128){defines a key with 128 elements}
declare ui_button $Push
end on
on ui_control($Push)
pgs_set_key_val(FIRST_KEY, 0,70 * $Push)
pgs_set_key_val(NEXT_KEY, 0, 50 * $Push)
pgs_set_key_val(NEXT_KEY, 127, 60 * $Push)
end on


p.011 on poly_at

ポリフォニックアフタータッチメッセージが受信されるたびに実行されるポリフォニックアフタータッチコールバック

on init
declare %note_id[128]
end on
on note
%note_id[$EVENT_NOTE] := $EVENT_ID
end on
on poly_at
change_tune(%note_id[$POLY_AT_NUM],%POLY_AT[$POLY_AT_NUM]*1000,0)
end on


p.012 on release

ノートオフメッセージを受信するたびに実行されるリリースコールバック
画像の説明

on init
declare polyphonic $new_id
end on
on release
wait(1000)
$new_id := play_note($EVENT_NOTE,$EVENT_VELOCITY,0,2000000)
change_vol ($new_id,-30000,1)
end on


p.013 on rpn/nrpn

rpnまたはnrpn(登録済み/登録されていないパラメータ番号)メッセージを受信するたびに実行されるrpnおよびnrpnコールバック

on rpn
select ($RPN_ADDRESS)
case 0
message ("Pitch Bend Sensitivity"&" - Value: "& $RPN_VALUE)
case 1
message ("Fine Tuning" & " - Value: " & $RPN_VALUE)
case 2
message ("Coarse Tuning" & " - Value: " & $RPN_VALUE)
end select
end on


p.014 on ui_control()

ユーザーがそれぞれのUI要素を変更するたびに実行されるUIコールバック
on ui_control

on init
declare ui_knob $Knob (0,100,1)
declare ui_button $Button
declare ui_switch $Switch
declare ui_table %Table[10] (2,2,100)
declare ui_menu $Menu
add_menu_item ($Menu,"Entry 1",0)
add_menu_item ($Menu,"Entry 2",1)
declare ui_value_edit $VEdit (0,127,1)
declare ui_slider $Slider (0,100)
end on
on ui_control ($Knob)
message("Knob" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control ($Button)
message("Button" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control ($Switch)
message("Switch" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control (%Table)
message("Table" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control ($Menu)
message("Menu" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control ($VEdit)
message("Value Edit" & " (" & $ENGINE_UPTIME & ")")
end on
on ui_control ($Slider)
message("Slider" & " (" & $ENGINE_UPTIME & ")")
end on


p.015 on ui_update

KONTAKTのすべてのGUI変更で実行されるUI更新コールバック

備考
このコマンドは、KONTAKTのGUIを変更するたびに起動されるので、注意して使用してください。

画像の説明

on init
declare ui_knob $Volume (0,1000000,1)
set_knob_unit ($Volume,$KNOB_UNIT_DB)
set_knob_defval ($Volume,630859)
$Volume := _get_engine_par ($ENGINE_PAR_VOLUME,-1,-1,-1)
set_knob_label ($Volume,_get_engine_par_disp...
($ENGINE_PAR_VOLUME,-1,-1,-1))
end on
on ui_update
$Volume := _get_engine_par ($ENGINE_PAR_VOLUME,-1,-1,-1)
set_knob_label($Volume,_get_engine_par_disp...
($ENGINE_PAR_VOLUME,-1,-1,-1))
end on
on ui_control ($Volume)
_set_engine_par($ENGINE_PAR_VOLUME,$Volume,-1,-1,-1)
set_knob_label ($Volume,_get_engine_par_disp...
($ENGINE_PAR_VOLUME,-1,-1,-1))
end on

最後までお読みいただきありがとうございます!
この記事が気に入ったらシェアをお願いします。

  画像の説明

Total:3033 Today:2 Yesterday:0 Now:9

コメント


認証コード1507

コメントは管理者の承認後に表示されます。