Logic Pro X: Scripter のコントロールを作成する

Scripter のコントロールを作成する

このセクションでは、スクリプトエディタを使って、Scripter プラグインのスライダやメニューなどの標準的なインターフェイスコントローラを作成する方法について説明します。新しいパラメータを定義するための唯一の必須プロパティは「name」です。デフォルトでは基本的なスライダに設定されます。また、その他のプロパティを使用してコントロールの種類や動作を変更できます。

オプションのプロパティ

  • type:以下のいずれかの文字列を値として入力します:

    • 「Lin」:リニアフェーダーが作成されます。

    • 「log」:対数フェーダーが作成されます。

    • 「momentary」:モメンタリボタンが作成されます。

    • 「menu」:メニューが作成されます。

      このメニュータイプには、メニュー内に表示する文字列による追加の valueStrings プロパティが必要です。チュートリアルスクリプト 13 を参照してください。

  • 「defaultValue」:整数または浮動小数点数を入力してデフォルト値を設定します。値が入力されていない場合、デフォルトは 0.0 になります。

  • minValue:整数または浮動小数点数を入力して最小値を設定します。値が入力されていない場合、デフォルトは 0.0 になります。

  • maxValue:整数または浮動小数点数を入力して最大値を設定します。値が入力されていない場合、デフォルトは 1.0 になります。

  • numberOfSteps:ステップ数を定義する整数を入力します。

  • unit:プラグインコントロールで表示される単位を示す文字列を入力します。値を入力しない場合は、デフォルトで単位は表示されません。

  • text:テキストを入力してプラグイン UI にディバイダ/ヘッダを作成します。

対応するチュートリアル設定を読み込んで、スクリプトエディタにスクリプトを表示してください。コードおよびコメントの構文構造とレイアウトの理解に役立ちます。スクリプトエディタを使うを参照してください。

チュートリアルスクリプト 11:スライダの作成

スクリプトエディタウインドウに以下の通りに入力すると、デフォルトの範囲が 0-1 の「Parameter x」という名前のスライダが作成されます。このスライダは中央値である「0.5」に設定されます。

var PluginParameters = [{name:"Parameter x", defaultValue:0.5}];

チュートリアルスクリプト 12:スライダの範囲

スクリプトエディタウインドウに以下の通りに入力すると、5 つの位置(目盛り)の間で調整できる、範囲が 0-5 のリニア表示スライダが作成されます。

var PluginParameters = [{name:"Octaves", defaultValue:3, minValue:0, maxValue:5, numberOfSteps:5, unit:"octaves", type:"lin"}];

チュートリアルスクリプト 13:メニューの作成

スクリプトエディタウインドウに以下の通りに入力すると、「Low」、「Mid」、および「High」の選択肢がある「Range」という名前のメニューが作成されます。

var PluginParameters = [{name:"Range", type:"menu", valueStrings:["Low", "Mid", "High"]}];

MIDI プラグインのコントロールを動的に表示する/隠す

複雑なスクリプトでは、表示するコントロールのグループを選択できるメニュー項目などで、パラメータコントロールを動的に表示したり隠したりできると便利です。スクリプトエディタウインドウに以下の通りに入力すると、各種のコントローラが作成されます。

  • var PluginParameters = [{name:'uno'}, {name:'dos', hidden:true}];

    UpdatePluginParameters() を呼び出すと、これが動的に変更されます。

プラグインのパラメータ値を取得する

パラメータ名を入力して GetParameter() を呼び出すと、パラメータの現在の値と共に値(Number オブジェクト)が返されます。通常、GetParameter() は HandleMIDI 関数またはProcessMIDI 関数の中で使用します。

このサンプルコードでは、モジュレーションイベントがノートイベントに変換され、ノートの長さを決めるスライダが作成されます。

  • 「/*」の後ろのテキストは、JavaScript コードについて説明するコメントを示します。

    var PluginParameters = [{name:"Note Length", minValue:0, maxValue: 100, unit:"%"}]; /* create a slider (default range 0 - 100) */ function HandleMIDI(event) { if(event instanceof ControlChange && event.number == 1) { /* if event is MIDI cc1 (modwheel) */ var note = new NoteOn; /* create a NoteOn object */ if(event.value == 0) /* because modwheel range is 0-127 and pitch range is 1-127, convert a modwheel value of 0 to 1 */ event.value = 1; note.pitch = event.value; /* use cc value as note pitch */ note.velocity = 100; /* use velocity 100 */ note.send(); /* send note on */ var off = new NoteOff(note); /* create a NoteOff object that inherits the NoteOn pitch and velocity values */ var delayInBeats = GetParameter("Note Length")/100 + 0.1; /* retrieve the parameter value of the slider you created (add 0.1 to guarantee note on and off are not simultaneous) */ off.sendAfterBeats(delayInBeats); /* send note off after the length in beats is set via the slider */ } }
公開日: 2018/08/17
役に立ちましたか?