|
|---|
指定したノートナンバーのカラー定数を返します。 |
on init
message("")
declare $count
while ($count < 128)
set_key_color($count, $KEY_COLOR_INACTIVE)
inc($count)
end while
declare $random_key
$random_key := random(60, 71)
set_key_color($random_key, $KEY_COLOR_RED)
end on
on note
if (get_key_color($EVENT_NOTE) = $KEY_COLOR_RED)
message("Bravo!")
set_key_color($random_key, $KEY_COLOR_INACTIVE)
$random_key := random(60, 71)
set_key_color($random_key, $KEY_COLOR_RED)
else
message("Try again!")
end if
end on
on release
message("")
end on
捕まえられるものならどうぞ。
|
|---|
指定したノートナンバーの名前を返します。 |
on init
declare $count
while ($count < 128)
set_key_name($count, "")
inc($count)
end while
set_key_name(60, "Middle C")
end on
on note
message(get_key_name($EVENT_NOTE))
end on
|
|---|
Kontaktのキーボード上で、指定したノートナンバーすなわちキーが押されているかどうかの状態を返します。値は1(キーが押されている)または0(キーが離されている)のいずれかです。 |
get_key_triggerstate()は、set_key_pressed_support()が1に設定されている場合にのみ動作します。
on init
set_key_pressed_support(1)
end on
on note
set_key_pressed($EVENT_NOTE, 1)
message(get_key_triggerstate($EVENT_NOTE))
end on
on release
set_key_pressed($EVENT_NOTE, 0)
message(get_key_triggerstate($EVENT_NOTE))
end on
|
|---|
指定したノートナンバーのキータイプ定数を返します。 |
|
|---|
指定したキーレンジの最低ノートを返します。 |
キーレンジはノートが重複することがないため、get_keyrange_...系のコマンドではいずれも、キーレンジを1つのノートナンバーだけで指定すれば十分です。
on init
declare $count
while ($count < 128)
remove_keyrange($count)
inc($count)
end while
set_keyrange(36, 72, "Middle Range")
end on
on note
message(get_keyrange_min_note($EVENT_NOTE))
end on
|
|---|
指定したキーレンジの最高ノートを返します。 |
キーレンジはノートが重複することがないため、get_keyrange_...系のコマンドではいずれも、キーレンジを1つのノートナンバーだけで指定すれば十分です。
on init
declare $count
while ($count < 128)
remove_keyrange($count)
inc($count)
end while
set_keyrange(36, 72, "Middle Range")
end on
on note
message(get_keyrange_max_note($EVENT_NOTE))
end on
|
|---|
指定したキーレンジの名前を返します。 |
キーレンジはノートが重複することがないため、get_keyrange_...系のコマンドではいずれも、キーレンジを1つのノートナンバーだけで指定すれば十分です。
on init
declare $count
while ($count < 128)
remove_keyrange($count)
inc($count)
end while
set_keyrange(36, 72, "Middle Range")
end on
on note
message(get_keyrange_name($EVENT_NOTE))
end on
| |
|---|---|
Kontaktのバーチャルキーボード上で、指定したキーすなわちMIDIノートの色を設定します。 | |
| キーのMIDIノートナンバー(0 ... 127)。 |
| 使用する色を指定するための、利用可能なキーカラー定数のいずれかです。次の定数が利用できます:
|
キーボードの色はKSPの外部に存在します。つまり、キーの色を変更することは、set_engine_par()でKontaktのノブを変更するのと同じようなものです。そのため、すべてのキーを$KEY_COLOR_INACTIVEか$KEY_COLOR_NONEのいずれかに設定する処理を、on initコールバックの中に書いておくとよいでしょう。
on init
message("")
declare ui_button $Color
declare $count
declare $note_count
declare $color_count
declare %white_keys[7] := (0, 2, 4, 5, 7, 9, 11)
declare %colors[16] := ( ...
$KEY_COLOR_RED, ...
$KEY_COLOR_ORANGE, ...
$KEY_COLOR_LIGHT_ORANGE, ...
$KEY_COLOR_WARM_YELLOW, ...
$KEY_COLOR_YELLOW, ...
$KEY_COLOR_LIME, ...
$KEY_COLOR_GREEN, ...
$KEY_COLOR_MINT, ...
$KEY_COLOR_CYAN, ...
$KEY_COLOR_TURQUOISE, ...
$KEY_COLOR_BLUE, ...
$KEY_COLOR_PLUM, ...
$KEY_COLOR_VIOLET, ...
$KEY_COLOR_PURPLE, ...
$KEY_COLOR_MAGENTA, ...
$KEY_COLOR_FUCHSIA)
$count := 0
while ($count < 128)
set_key_color($count, $KEY_COLOR_NONE)
inc($count)
end while
end on
on ui_control ($Color)
if ($Color = 1)
$count := 0
while ($count < 128)
set_key_color($count, $KEY_COLOR_INACTIVE)
inc($count)
end while
$note_count := 0
$color_count := 0
while ($color_count < 16)
if (search(%white_keys, (60 + $note_count) mod 12) # -1)
set_key_color(60 + $note_count, %colors[$color_count])
inc($color_count)
end if
inc($note_count)
end while
else
$count := 0
while ($count < 128)
set_key_color($count, $KEY_COLOR_NONE)
inc($count)
end while
end if
end on
Kontaktのレインボー。
| |
|---|---|
指定したノートナンバーにテキスト文字列を割り当てます。 | |
| キーのMIDIノートナンバー(0 ... 127)。 |
| 割り当てるテキスト文字列です。 |
キーネームはインストゥルメントのパラメーターであり、KSPの外部に存在します。つまり、キーネームを変更することは、set_engine_par()でKontaktのノブを変更するのと同じようなものです。on initコールバックの中で、必ずすべてのキーネームをリセットするようにしてください。
キーネームとキーレンジは、Kontaktのキーボード上でキーにマウスカーソルを重ねると、KontaktのInfo Paneに表示されます。
on init
declare $count
while ($count < 128)
set_key_name($count, "")
inc($count)
end while
set_key_name(60, "Middle C")
end on
| |
|---|---|
Kontaktのキーボード上で、指定したキーのトリガーステートを設定します。 | |
| キーのMIDIノートナンバー(0 ... 127)。 |
| 0: キーが離された状態 1: キーが押された状態 |
set_key_pressed()を、1に設定したset_key_pressed_support()と組み合わせて使用することで、スクリプトが生成したノートをKontaktのキーボード上に表示できます。典型的な使用例は、インストゥルメントにシーケンサーやアルペジエーター、ハーモナイザーが内蔵されていて、トリガーされたノートをキーボード上に表示したい場合です。
on init
set_key_pressed_support(1)
end on
on note
set_key_pressed($EVENT_NOTE, 1)
end on
on release
set_key_pressed($EVENT_NOTE, 0)
end on
アルペジエーターやハーモナイザーのスクリプトの後にこれを挿入します。
| |
|---|---|
Kontaktのキーボードにおける押鍵状態のサポートモードを設定します。 | |
| 0: Kontaktがすべての押鍵状態を処理します。 1: Kontaktのキーボードはset_key_pressed()コマンドによってのみ影響を受けます。 |
押鍵状態のモードはKSPの外部に存在します。つまり、このモードを変更することは、set_engine_par()でKontaktのノブを変更するのと同じようなものです。on initコールバックの中で、必ず目的のモードを設定するようにしてください。
on init
declare ui_button $Enable
set_key_pressed_support(0)
end on
on ui_control ($Enable)
set_key_pressed_support($Enable)
end on
on note
play_note($EVENT_NOTE + 4, $EVENT_VELOCITY, 0, -1)
play_note($EVENT_NOTE + 7, $EVENT_VELOCITY, 0, -1)
set_key_pressed($EVENT_NOTE, 1)
set_key_pressed($EVENT_NOTE + 4, 1)
set_key_pressed($EVENT_NOTE + 7, 1)
end on
on release
set_key_pressed($EVENT_NOTE, 0)
set_key_pressed($EVENT_NOTE + 4, 0)
set_key_pressed($EVENT_NOTE + 7, 0)
end on
ボタンを押すと、聞こえている音が目で見えるようになります。
| |
|---|---|
指定したキーにキータイプを割り当てます。 | |
| キーのMIDIノートナンバー(0 ... 127)。 |
| 次のキータイプが利用できます:
|
キータイプの設定は、Komplete Kontrolのような対応ホストで役に立ちます。こうしたホストでは、キースイッチなどのコントロール機能を持つキーが、ノート処理の影響を受けないようにする必要があるためです。
on init
declare $count
$count := 0
while ($count < 128)
set_key_type($count, $NI_KEY_TYPE_NONE)
inc($count)
end while
$count := 36
while ($count <= 96)
select ($count)
case 36 to 47 { e.g. key switch }
set_key_type($count, $NI_KEY_TYPE_CONTROL)
case 48 to 96 { e.g. playable notes }
set_key_type($count, $NI_KEY_TYPE_DEFAULT)
end select
inc($count)
end while
end on
| |
|---|---|
指定したキーの範囲にテキスト文字列を割り当てます。 | |
| キーレンジの最初のキー(0 ... 127)。 |
| キーレンジの最後のキー(0 ... 127)。 |
| キーレンジの名前を指定するテキスト文字列です。 |
キーレンジはインストゥルメントのパラメーターであり、KSPの外部に存在します。つまり、キーレンジを変更することは、set_engine_par()でKontaktのノブを変更するのと同じようなものです。on initコールバックの中で、または後からキーレンジを変更したいときには必ず、すべてのキーレンジを削除するようにしてください。
1つのインストゥルメントにつき、キーレンジは最大16個まで設定できます。
キーネームとキーレンジは、Kontaktのキーボード上でキーにマウスカーソルを重ねると、KontaktのInfo Paneに表示されます。レンジ名の後に、ダッシュで区切ってキーネームが表示されます。
on init
declare $count
while ($count < 128)
remove_keyrange($count)
inc($count)
end while
set_keyrange(36, 72, "Middle Range")
end on
|
|---|
指定したノートナンバーが属するキーの範囲を削除します。 |
キーレンジはインストゥルメントのパラメーターであり、KSPの外部に存在します。つまり、キーレンジを変更することは、set_engine_par()でKontaktのノブを変更するのと同じようなものです。on initコールバックの中で、または後からキーレンジを変更したいときには必ず、すべてのキーレンジを削除するようにしてください。
on init
declare $count
while ($count < 128)
remove_keyrange($count)
inc($count)
end while
set_keyrange(36, 72, "Middle Range")
end on
参照元情報:Keyboard Commands
https://docs.native-instruments.com/online-guides/ksp-manual/en/keyboard-commands