GameSynth API ver 2023.1

EN JP

コマンド一覧

各コマンドはTCP通信を介してGameSynthに送られます。デフォルトの通信設定は以下の通りです:

これらはGameSynthの設定画面にて変更可能です

GameSynth

get_version

GameSynth Toolのバージョンを返します。形式はYYYY.M.m.r(YYYYは年、Mはメジャーバージョン番号、mはマイナーバージョン番号、rはリビジョン)となります。クライアントコード内のさまざまなバージョンのツールとの互換性を維持できます。

get_commands

このバージョンのAPIで使用可能なコマンドのリストをコンマで区切って返します。

get_models

このバージョンのGameSynthのモデルのリストを返します(リストはコンマで区切られます)。Engines Pluginなどのプラグインがインストールされているかどうかを判断できます。

select_model name

名前で指定したモデルを選択します。これは、GameSynthでのModelタブのクリックや、ファンクションキーを押すのと同様です。名前では大文字と小文字が区別されません。モデルが存在しない場合(例: Enginesプラグインがインストールされていない、タイプミスがある等)は、"No data found"が返されます。

例:
select_model Impact

get_path path

GameSynthのSettingsウィンドウで設定されているシステムパスを返します。パスに何もアサインされていない場合、関数は"No data found"を返します。要求されたパスの可能な値は次のとおりです。

PATCH_FOLDER: パッチパス
BANK_FOLDER: バンクパス
BINARY_FOLDER: バイナリバンクのエクスポートパス
MIDDLEWARE_FOLDER: ミドルウェアへのエクスポートパス
RENDERING_FOLDER: オーディオレンダリングのパス
AUDIOASSETS_FOLDER: オーディオアセットのパス
PICTURES_FOLDER: (ImpactやFootstepsモデルなどで使用される) 画像ファイルのパス
VIDEO_FOLDER: 動画のパス
SCRIPTS_FOLDER: (Scriptモジュールやスケッチパッドなどで使われる) スクリプトのパス
REPOSITORY_FOLDER: リポジトリデータが保存されているパス
RANDOMPATCH_FOLDER: ランダムパッチ生成時にオーディオアセットを取得する際のパス
AUDIOEDITOR_EXE: オーディオエディタへのパス

例:
get_path PATCH_FOLDER

get_samplerate

設定で選択されているサンプルレートを返します。返される値はHzで表されます。

set_samplerate value

GameSynthのサンプルレートを設定します。値はHzで表す必要があり、可能な選択肢は現在 44100または 48000に制限されています。

パッチの再生中にサンプルレートを変更しようとすると、エラーが発生します。

例:
set_samplerate 44100

リポジトリ

query_patchnames text name category tags

検索パラメーターに一致するリポジトリからのパッチの名前を返します。パッチ名はコンマで区切られます。テキストに一致するパッチが見つからない場合、関数は" No data found"を返します。

’text’は、名前、カテゴリ、またはタグに含める必要があるテキストです。
’name’は、検索でパッチ名を調べる場合は1、それ以外の場合は0です。
’category’は、検索でカテゴリ名を調べる場合は1、それ以外の場合は0です。
’tags’は、検索でタグ名を調べる場合は1、それ以外の場合は0です。

例:
query_patchnames Magic 1 0 1
query_patchnames "natural disaster" 0 1 0

query_patch name

リポジトリからパッチを取得し、それを現在のパッチとしてGameSynthで読み込みます。

パッチ名は、リポジトリに表示されるものとまったく同じにする必要があります (つまり、パスも拡張子もありません)。

パッチ名はquery_patchnames関数で取得できます。

例:
query_patch Ascent
query_patch "Alien Fowl"

query_categories

リポジトリ内のパッチに割り当てられたすべてのカテゴリの名前をコンマで区切って返します。

query_tags

リポジトリ内のパッチに割り当てられたすべてのタグの名前をコンマで区切って返します。

パッチ

load_patch path

パスで指定したパッチをGameSynthに読み込みます。パッチにスペースが含まれている場合は引用符で囲んで渡す必要があります。また、拡張子も表記する必要があります。

例:
load_patch D:\patches\blip.gspatch
load_patch "D:\patches\blip 2.gspatch"

save_patch path

現在のパッチを指定されたパスに保存します。

例:
save_patch D:\patches\blip.gspatch
save_patch "D:\patches\blip 2.gspatch"

render_patch path bits channels duration

指定されたパスにパッチをレンダリングします。この場所にファイルが既に存在する場合は、上書きされます。

ビット深度とチャンネル数を指定する必要があります。ビット深度の有効な値は、8、16、24、および32です。チャンネル番号は1または2に設定できます。

デュレーションは秒単位で表され、パッチのデュレーションが無限の場合にのみ使用されます。 パッチが自動的に終了する場合は、この値を0に設定して問題ありません。最大許容期間は3分(つまり値にして180) に設定されています。

例:
render_patch D:\patches\blip.wav 16 1 0
render_patch "D:\patches\ambient loop.wav" 24 2 10

get_modelname

現在のパッチで使用されているモデルの名前を返します。

get_patchname

現在のパッチの名前を返します。パッチがまだ保存されておらず、名前がない場合は、「unnamed」が返されます。

get_variation

パッチに現在割り当てられているランダムバリエーションの%を返します。

返される値の範囲は [0…100] です。

set_variation value

パッチのランダムバリエーションの%を指定された値に設定します。
値は0~100でなければならず、必要に応じてクリップされます。

例:
set_variation 50

get_drawing index

現在のパッチのスケッチパッドに描かれている曲線を返します。

indexパラメーターは0から始まり、Whooshモデルのように、スケッチパッドで複数の曲線を同時に描けるモデルの場合、任意の曲線を選択できます。曲線が 1つのモデルの場合は、単純に 0を渡します。

曲線情報は、括弧で囲まれた一連の4つ組 (t、x、y、p) として返されます。
例:(0,0,0,1)(0.5,0.5557,0.49837,1)(1,0.801083,0.104,0.096)

t: 秒単位の時間 [0….60] に対応します。
x: スケッチ パッドの左から右への水平位置 [0…1] に対応します。
y: 上から下までのスケッチ パッドの垂直位置 [0…1] に対応します。
p: 描画するときの筆圧量[0…1] に対応します。
注: この関数は、ModularモデルのSketch Padモジュールから曲線を返しません。

例:
get_drawing 0

set_drawing points

現在のパッチのスケッチパッドに曲線を設定します。

曲線情報は、括弧内の一連の 4 つ組 (t、x、y、p) として渡されます (get_drawing 関数によって返される情報と同様)。

t: 秒単位の時間 [0….60] に対応します。 GameSynth API は、必要に応じて時間を増やしてポイントを並べ替えます。
x: スケッチ パッドの左から右への水平位置 [0…1] に対応します。 値は必要に応じてクランプされます。
y: 上から下までのスケッチ パッドの垂直位置 [0…1] に対応します。 値は必要に応じてクランプされます。
p: 描画するときの筆圧量[0…1]に対応します。 値は必要に応じてクランプされます。

注: この関数は、ModularモデルのSketch Padモジュールの曲線を設定できません。Whooshモデルで使用すると、以前のすべての曲線がクリアされます。

例:
set_drawing (0,0,0,1),(0.5,0.5,0.5,1),(1,0.8,0.1,0.1)

メタパラメータ

get_metacount

現在のパッチのメタパラメータの数を返します。

get_metanames

コンマで区切られた、現在のパッチのメタパラメータの名前のリストを返します。パッチにメタパラメータが存在しない場合、関数は"No data found"を返します。

get_metaname index

インデックスが引数として渡された現在のパッチのメタパラメータの名前を返します。インデックスは0から始まり、0からget_metacount関数によって返される値-1までの範囲内である必要があります。

例:
get_metaname 3

get_metavalue info_type info


現在のパッチの特定のメタパラメータの値を返します。メタパラメータは、インデックスまたは名前で記述され、info引数で渡されます。 info_type は BY_NAME または BY_INDEX に設定され、どちらで検索するかを決定します。

info_typeをBY_INDEX に設定して値を取得する場合、インデックスは0ベースであり、0からget_metacount関数によって返される値-1までの範囲内である必要があります。

info_typeをBY_NAME に設定して値を取得する場合、get_metanames関数を呼び出すことで有効なメタパラメータ名を取得できます。

返される値の範囲は [0…1] です。

例:
get_metavalue BY_INDEX 2
get_metavalue BY_NAME "cutoff freq"

set_metavalue info_type info value

現在のパッチの特定のメタパラメータの値を設定します。メタパラメータは、インデックスまたは名前で記述され、info引数で渡されます。 info_typeはBY_NAMEまたはBY_INDEX に設定され、どちらで検索するかを決定します。

get_metanames関数を呼び出すと、有効なメタパラメータ名を取得できます。

値は、0と1の間で切り取られる浮動小数点数です。

例:
set_metavalue BY_INDEX 1 0.3
set_metavalue BY_NAME "cutoff freq" 0.7

オートメーションカーブ

get_curvescount

現在のパッチのオートメーションカーブの数を返します。

get_curvenames

現在のパッチのオートメーションカーブの名前のリストをコンマで区切って返します。パスに何もアサインされていない場合、関数は"No data found"を返します。

get_curvename index

インデックスが引数として渡された現在のパッチのオートメーションカーブの名前を返します。 インデックスは0ベースで、0からget_curvescount関数によって返される値-1までの範囲内である必要があります。

例:
get_curvename 3

get_curvevalue info_type info

現在のパッチの特定のオートメーションカーブのポイントを返します。 オートメーション カーブは、インデックスまたは名前で記述され、info引数で渡されます。 info_typeはBY_NAME またはBY_INDEX に設定され、どちらで検索するかを決定します。

info_typeをBY_INDEX に設定して値を取得する場合、インデックスは0ベースであり、0から get_curvescount関数によって返される値-1までの範囲内である必要があります。

info_typeをBY_NAME に設定して値を取得する場合、get_curvenames関数を呼び出して有効なオートメーションカーブ名を取得できます。

この関数は、一連のポイント、期間、およびループフラグをスペースで区切って返します。

ポイントは、括弧内の一連の座標(X,Y)として渡されます。(0,1)(1,0.5)であり、X 値とY値の範囲は両方とも [0…1]です。

カーブの持続時間は秒単位で表されます (60 秒に制限されています)。

ループ情報は、0 (ループなし) または 1 (ループ) として渡されます。

例:
get_curvevalue BY_INDEX 2
get_curvevalue BY_NAME "cutoff freq"

set_curvevalue info_type info points duration loop

現在のパッチの特定のオートメーションカーブの値を設定します。オートメーションカーブは、インデックスまたは名前で記述され、info引数で渡されます。info_typeは BY_NAMEまたは BY_INDEXに設定され、どちらで検索するかを決定します。

info_typeをBY_NAMEに設定して値を設定すると、get_curvenames関数を呼び出して既存のオートメーションカーブ名を取得できます。

info_typeをBY_INDEXに設定して値を設定する場合、インデックスは0ベースであり、0から get_curvescount関数によって返される値-1までの範囲内である必要があります。

指定された名前またはインデックスを持つオートメーションカーブが既に存在する場合、そのカーブとパラメーターは、関数に渡されたカーブとパラメーターに置き換えられます。

指定された名前のオートメーション カーブが存在しない場合は、指定されたポイントを使用して新しいカーブが作成され、そのカーブが設定されます。

ポイントは、括弧内の一連の座標 (X,Y)として渡されます。例:(0,1)(1,0.5)

XとYの値の範囲は両方とも[0…1]です。 最初のX値が0でない場合、およびまたは最後のX値が1 でない場合、X座標は範囲 [0…1] に再マッピングされます。

Y値の一部が1.0より大きいか0より小さい場合、範囲 [0…1] に収まるようにクリップされます。

カーブの持続時間は秒単位で表されます (60 秒に制限されています)。

ループ情報は、0 (ループなし) または 1 (ループ) として渡されます。

例:
set_curvevalue BY_NAME volume (0,0.3)(0.5,1)(1,0) 2.5 1
set_curvevalue BY_INDEX 1 "(0, 0.3) (0.5, 1) (1, 0)" 3 0

再生

play

現在のパッチを再生します。

stop

再生中の場合、現在のパッチを停止します。

is_playing

現在のパッチが再生中の場合は1を返し、それ以外の場合は0を返します。

is_infinite

現在のパッチの時間の長さが無限の場合は1を返し、自動的に終了する場合は0を返します。

is_randomized

現在のパッチがバリエーションを生成できる場合、つまり「パラメーターの一部にランダム幅が割り当てられている場合」「コンボボックスの項目がランダム選択チェックされている場合」「本質的にランダムなパラメーターがゼロ以外の値に設定されている場合(WhooshモデルのMovementバリエーション、ModularモデルのEnvelope モジュールのVariationパラメーターなど)」において、1を返します。

ランダムな設定が見つからない場合、コマンドは 0 を返します。

enable_events value

GameSynthから受信した合成イベントの通知を有効(値が1の場合)または無効(値が0の場合)にします。

デフォルトでは、通知は無効になっています。

イベント通知を受信すると、テキストは次の規則に従います。
EVENT: イベント名

ユーザーインターフェース

window_back

GameSynthのメインウィンドウを背面に移動させることで、他のツールを見やすくします。

window_front

GameSynth のメインウィンドウを最前面に移動し、ツールを見やすくします。

window_message text buttons

スクリプトの操作が可能なメッセージボックスを表示します。ユーザーはメッセージボックス内でアクションの確認やキャンセルといった操作を行えます。

メッセージのテキストは、最初のパラメーターとして引用符で囲んで渡します。また、表示するボタンの指定も必要で、以下の組み合わせが利用可能です:
OK, OK_CANCEL, YES_NO, RETRY_EXIT

この関数は押されたボタンの名前(大文字)、つまりOK、CANCEL、RETRYなどを返します。

例:
window_message "The data will be overwritten. Do you want to continue?" OK_CANCEL

window_parameters parameter1 parameter2...

ユーザーがパラメーターの値を指定するダイアログボックスを表示するためのスクリプトです。

各パラメーターの記述は括弧内で渡され、フィールドはカンマで区切られます。したがって、単一パラメーターの一般的な形式は、{type, name, field1, field2, …}となります。

パラメーターにはNumber(数値)、Boolean(真偽値)、String(文字列)、Enum(列挙)の4種類があります。さらに、Labelタイプも提供しており、その値は保存されませんが、ウィンドウに追加の命令を表示できます。



数値パラメーターはテキストボックスとして表示され、次のように定義されます:

{NUMBER, "Name", Type, "Unit", Min, Max, Def, Decimals}
  • NUMBER: パラメーターのタイプです。
  • Name: テキストボックスの前に表示されるパラメーターの名前です。
  • Type: 数値のサブタイプです(FLOATまたはINTEGER)。
  • Unit: パラメーターの値の後に表示される文字列です。
  • Min: パラメーターが取り得る最小値です。
  • Max: パラメーターが取り得る最大値です。
  • Def: パラメーターのデフォルト値です。
  • Decimals: サブタイプFLOATの数値にのみ使用され、表示される小数点以下の桁数を表します(最大5まで)。

例:
{NUMBER, "Sample Rate", INTEGER, "Hz", 8000, 48000, 44100, 0}
{NUMBER, "Duration", FLOAT, "s", 0.1, 10, 1, 3}



真偽値パラメーターはチェックボックスとして表示され、次のように定義されます。

{BOOL, "Name", Def}
  • BOOL: パラメーターのタイプです。
  • Name: チェックボックスの前に表示されるパラメーターの名前です。
  • Def: パラメーターのデフォルト値です。 真偽値パラメーターの場合、TRUEまたはFALSE のいずれかになります。

  • 例:
    {BOOL, "Looping", TRUE}



    文字列パラメーターはテキストボックスとして表示され、次のように定義されます。

    {STRING, "Name", Type, Def}
    • STRING: パラメーターのタイプです。
    • Name: テキストボックスの前に表示されるパラメーターの名前です。
    • Type: 文字列のサブタイプです。 次の値を取ることができます。
      • NORMAL: 通常の文字列を入力します。
      • FILELOAD: ロードするファイルのパスを選択します (追加の参照ボタンが表示されます)。
      • FILESAVE: 保存するファイルのパスを選択します (追加の参照ボタンが表示されます)。
      • FOLDER: フォルダのパスを選択します (追加の参照ボタンが表示されます)。
    • Def: 文字列のデフォルト値です。

      • 例:
        {STRING, "Rendering Folder", FOLDER, "C:\GameSynth\Wave Files"}
        {STRING, "Patch", FILELOAD, "C:\GameSynth\Patches\Droid.gspatch"}
        {STRING, "Track Name", NORMAL, "New Track"}



        列挙パラメーターは、そのサブタイプに基づいてコンボボックスまたはリストボックスとして表示され、次のように定義されます。

        {ENUM, "Name", Type, "Choice1, Choice2...", Def}
      • ENUM: パラメーターのタイプです。
      • Name: 表示されるパラメーターの名前です。
      • Type: 列挙のサブタイプで、使用されるコントロールを決定します。
        • LIST: リストボックスに選択肢を表示します (選択肢が多い場合に推奨)。
        • COMBO: コンボボックスに選択肢を表示します。
      • Choices: パラメーターに使用できる値のリストです。 選択肢は引用符で囲まれ、カンマで区切られてリストされます。
      • Def: パラメーターのデフォルト値です(つまり選択肢の1つ)。

        • 例:
          {ENUM, "Container Type", COMBO, "None,Sequential,Random,Random No Repeat,Shuffle", Random}



          最後に、単純なテキストとしてLabelを表示できます。これは主にセクション区切り文字として、およびパラメーターに関する情報を提供するために使用されます。 それは次のように定義されます。

          {LABEL, "Text", Type, Alignment}
          • LABEL: パラメーターのタイプです。
          • Text: 表示されるテキストです。
          • Type: ラベルのサブタイプです。テキストの表示に使用されるフォントを定義します。
            • TEXT: パラメーターの名前と同じフォントが使用されます。
            • HEADER: わずかに大きなフォント (太字) が使用されます。
          • Alignment : ダイアログボックス内のテキストの水平方向の配置を決定します。
            • LEFT : テキストはダイアログボックスの左側に揃えられます。
            • RIGHT : テキストはダイアログ ボックスの右側に揃えられます。
            • CENTER : テキストはダイアログボックスの中央に揃えられます。

          例:
          {LABEL, "The parameters below define how the sound variations are generated.", TEXT, LEFT}



          ダイアログボックスが閉じられると、関数はカンマで区切られたパラメーターの値を返します。

window_rendering show_duration show_variations

ユーザーがレンダリングオプションを指定できるダイアログボックスを表示します。これは window_parametersコマンドの事前構成バージョンであり、次のパラメーターのコントロールを表示します。

  • Bit depth: ファイルのレンダリングに使用されるビット深度 (8、16、24、または 32 ビット)。
  • Sample Rate: オーディオファイルの生成に使用されるサンプルレート (44100 または 48000 Hz)。
  • Channels: チャンネル数 (モノラルまたはステレオ)。

  • show_durationおよび show_variationsパラメーターを0または1に設定すると、アプリケーションのニーズに応じて追加のパラメーターを表示/非表示にできます。

    • Duration: 無限の長さのパッチのレンダリング時間を表示します(show_durationが1に設定されている場合)。
    • Variations: レンダリングするサウンドバリエーションの数(show_variationsが1に設定されている場合)。

    例:
    window_rendering 1 0

window_test

さまざまな種類のパラメーターとコントロールを示すダイアログボックスを表示します。独自のダイアログボックスを作成するときに使用されます。