KSPリファレンスマニュアル 12 - グループコマンド(Group Commands)

KSPリファレンスマニュアル 12 - グループコマンド(Group Commands)


allow_group()

allow_group(<group-index>)

指定したグループを許可します。つまり、そのグループを再生可能な状態にします。

補足

  • このコマンドはon noteコールバックとon releaseコールバックでのみ使用できます。

  • グループインデックスの番号は0から始まります。つまり、Instrumentの最初のグループのインデックスは0です。

  • グループの許可状態を変更できるのは、そのボイスが動作していないときだけです。

on note
    disallow_group($ALL_GROUPS)
    allow_group(0)
end on

最初のグループだけが再生されます。

関連項目

disallow_group()

set_event_par_arr()

イベントとMIDI: $ALL_GROUPS, $EVENT_PAR_ALLOW_GROUP


disallow_group()

disallow_group(<group-index>)

指定したグループを不許可にします。つまり、そのグループを再生できない状態にします。

補足

  • このコマンドはon noteコールバックとon releaseコールバックでのみ使用できます。

  • グループインデックスの番号は0から始まります。つまり、Instrumentの最初のグループのインデックスは0です。

  • グループの不許可状態を変更できるのは、そのボイスが動作していないときだけです。

on init
    declare $count
    declare ui_menu $groups_menu

    add_menu_item($groups_menu, "Play All", -1)

    while ($count < $NUM_GROUPS)
        add_menu_item($groups_menu, "Mute: " & group_name($count), $count)

        inc($count)
    end while
end on

on note
    if ($groups_menu # -1)
        disallow_group($groups_menu)
    end if
end on

Instrumentの特定のグループを1つミュートします。

関連項目

allow_group()

set_event_par_arr()

イベントとMIDI: $ALL_GROUPS, $EVENT_PAR_ALLOW_GROUP


get_group_idx()

get_group_idx(<group-name>)

指定したグループ名に対応するグループインデックスを返します。

補足

  • 指定した名前のグループが見つからない場合、このコマンドは$NI_NOT_FOUNDを返します。

on init
    declare $group_idx
end on

on note
    $group_idx := get_group_idx("Accordion")

    if ($group_idx # $NI_NOT_FOUND)
        disallow_group($group_idx)
    end if
end on

シンプルですが役に立つスクリプトです。

関連項目

allow_group()

disallow_group()

group_name()


get_purge_state()

get_purge_state(<group-index>)

指定したグループのパージ状態を返します。

0: そのグループはパージされています。

1: そのグループはパージされていません。つまり、サンプルは読み込まれています。

<group-index>

状態を確認したいグループのインデックス番号です。

on init
    declare ui_button $purge
    declare ui_button $checkpurge

    set_text($purge, "Purge first group")
    set_text($checkpurge, "Check purge status")
end on

on ui_control ($purge)
    { 1 - $purge inverts the behaviour of the button, here }
    purge_group(0, 1 - $purge)
end on

on ui_control ($checkpurge)
    if (get_purge_state(0) = 0)
        message(“Group is purged.”)
    else
        message(“Group is not purged.”)
    end if
end on

シンプルなパージ状態の確認です。

関連項目

purge_group()


group_name()

group_name(<group-index>)

指定したグループのグループ名を返します。

補足

  • グループインデックスの番号は0から始まります。つまり、Instrumentの最初のグループのインデックスは0です。

on init
    declare $count
    declare ui_menu $groups_menu

    $count := 0
    while ($count < $NUM_GROUPS)
        add_menu_item ($groups_menu, group_name($count), $count)

        inc($count)
    end while
end on

利用可能なすべてのグループを含むメニューを手早く作成します。

on init
    declare $count
    declare ui_label $label (2, 6)

    set_text($label, "")
end on

on note
    $count := 0
    while ($count < num_elements(%GROUPS_AFFECTED))
        add_text_line($label, group_name(%GROUPS_AFFECTED[$count]))

        inc($count)
    end while
end on

on release
    set_text($label, "")
end on

最初の1001個のZone IDの状態を照会します。

関連項目

allow_group()

disallow_group()

get_group_idx()

output_channel_name()

イベントとMIDI: $ALL_GROUPS, $NUM_GROUPS


purge_group()

purge_group(<group-index>, <mode>)

指定したグループのサンプルをパージします(つまり、RAMからアンロードします)。

<group-index>

パージ対象のサンプルを含むグループのインデックス番号です。

<mode>

0に設定した場合、指定したグループのサンプルがアンロードされます。

1に設定した場合、サンプルが再度読み込まれます。

補足

  • purge_group()をwhileループの中で使用するときは、そのループ内でwait()コマンドを使用しないでください。

  • purge_group()を使用できるのは、on ui_controlon ui_controlson persistence_changedの各コールバックだけです。

  • オートメーション可能なコントロールのUIコールバックでは、purge_group()コマンドを使用しないことを推奨します。

  • purge_group()関数には非同期IDを渡すことができ、on async_completeコールバックで結果を受け取ることができます。

on init
    declare $async_id := -1
    declare ui_button $purge

    set_text($purge,"Purge first group")
end on

on ui_control ($purge)
    $async_id := purge_group(0, abs($purge - 1))
end on

on async_complete
    if ($NI_ASYNC_ID = $async_id)
        if (get_purge_state(0) = 0)
            message("Group is purged")
        else
            message("Group is not purged")
        end if
    end if
end on

最初のグループのサンプルをすべてアンロードします。

関連項目

get_purge_state()


参照元情報:Group Commands
https://docs.native-instruments.com/online-guides/ksp-manual/en/group-commands