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 */ } }
公開日: 2019/09/13
役に立ちましたか?