MainStageユーザガイド
- ようこそ
-
- 「編集」モードの概要
-
- チャンネルストリップの概要
- チャンネルストリップを追加する
- チャンネルストリップ設定を変更する
- チャンネルストリップのコンポーネントを設定する
- シグナル・フロー・チャンネル・ストリップを表示する
- メトロノームチャンネルストリップを非表示にする
- チャンネルストリップのエイリアスを作成する
- パッチバスを追加する
- チャンネルストリップのパンまたはバランス位置を設定する
- チャンネルストリップのボリュームレベルを設定する
- チャンネルストリップをミュートする/ソロにする
- マルチ音源出力を使用する
- 外部MIDI音源を使用する
- チャンネルストリップを並べ替える
- チャンネルストリップを削除する
-
- 「チャンネル・ストリップ・インスペクタ」の概要
- チャンネルストリップ設定を選択する
- チャンネルストリップの名前を変更する
- チャンネルストリップのカラーを変更する
- チャンネルストリップのアイコンを変更する
- チャンネルストリップでフィードバック保護を使用する
- ソフトウェア音源チャンネルストリップのキーボード入力を設定する
- 個別のソフトウェア音源をトランスポーズする
- MIDIメッセージをフィルタリングする
- チャンネルストリップのベロシティをスケーリングする
- Hermode Tuningを無視するようにチャンネルストリップを設定する
- コンサートレベルおよびセットレベルのキー範囲を上書きする
- チャンネル・ストリップ・インスペクタでチャンネルストリップにテキストノートを追加する
- オーディオをセンドエフェクト経由でルーティングする
- グラフを操作する
- コントローラのトランスフォームを作成する
- 複数のコンサートでパッチやセットを共有する
- コンサートのオーディオ出力を録音する
-
- エフェクトの概要
-
- 音源: はじめに
MainStageのJavaScript Eventオブジェクトを使う
HandleMIDI関数が呼び出されると、Eventオブジェクトは1つのMIDIイベントを表し、スクリプト内で呼び出せるいくつかのメソッドを実装します。
Eventオブジェクトから直接インスタンスが作成されることはなく、Eventオブジェクトはイベントに特有の以下のメソッド、プロパティ、およびタイプのプロトタイプになっています。
ヒント: JavaScriptの「new」キーワードを使用すると、任意のタイプのEventオブジェクトの新しいインスタンスを生成できます。
Eventのメソッド
Event.send(): イベントを送信します。
Event.sendAfterMilliseconds(number ms): 指定の値が経過するとイベントを送信します(整数または浮動小数点数を指定できます)。
Event.sendAtBeat(number beat): ホストのタイムライン上の指定の拍(浮動小数点数)でイベントを送信します。
Event.sendAfterBeats(number beat): 上記と同じですが、拍の値は現在位置からの拍単位のディレイとして使用されます。
Event.trace(): イベントをプラグインのコンソールに表示します。Traceオブジェクトを使うを参照してください。
Event.toString(): イベントを文字列で返します。
イベントのプロパティ
Event.toarticulationID(integer number): 0-254のアーティキュレーションIDを設定します。
Event.channel(number): MIDIチャンネル1-16を設定します。
Event.beatPos: イベントの拍の正確な位置を取得します。
イベントタイプ
Eventオブジェクトは以下のイベントタイプのプロトタイプになっています。すべてのイベントタイプが、上記のメソッドと、チャンネルのプロパティを継承します。
イベントタイプとそのプロパティは以下の通りにHandleMIDIに渡されます:
NoteOn.pitch(integer number): 1-127のピッチ。
NoteOn.velocity(integer number): 0-127のベロシティ。ベロシティ値0は、ノートオンではなくノート・オフ・イベントとして解釈されます。
NoteOff.pitch(integer number): 1-127のピッチ。
NoteOff.velocity(integer number): 0-127のベロシティ。
PolyPressure.pitch(integer number): 1-127のピッチ。
PolyPressure.value(integer number): 0-127のプレッシャー値を定義します。
ControlChange.number(integer number): 0-127のコントローラ番号。
ControlChange.value(integer number): 0-127のコントローラ値。
ProgramChange.number(integer number): 0-127のプログラムチェンジ番号。
ChannelPressure.value(integer number): 0-127のアフタータッチ値。
PitchBend.value(integer number): -8192-8191の14ビットのピッチベンド値。値0は中央です。
TargetEvent.target(string): ユーザによる定義が可能なMIDI CCメッセージを作成します。またはプラグインのパラメータを制御します。
TargetEvent.value(float): ターゲットの値を設定します。
対応するチュートリアル設定を読み込んで、スクリプトエディタにスクリプトを表示してください。コードおよびコメントの構文構造とレイアウトの理解に役立ちます。スクリプトエディタを使うを参照してください。
チュートリアルスクリプト7: イベントの作成
MainStageで、この例では、受信した各MIDIイベントをモジュレーション・コントロール・チェンジ・メッセージに置き換えます。
「/*」の後ろのテキストは、JavaScriptコードについて説明するコメントを示します。
ヒント: JavaScriptの「new」キーワードを使用すると、任意のタイプのEventオブジェクトの新しいインスタンスを生成できます。
function HandleMIDI() {
var cc = new ControlChange; /* make a new control change message */
cc.number = 1; /* set it to controller 1 (modulation) */
cc.value = 100; /* set the value */
cc.send(); /* send the event */
cc.trace(); /* print the event to the console */
}
チュートリアルスクリプト8: イベントの変更
MainStageで、この例では、受信した各MIDIイベントをC3ノートのオン/オフに置き換えます。NeedsTimingInfo変数も使用します。JavaScript TimingInfoオブジェクトを使うを参照してください。
「/*」の後ろのテキストは、JavaScriptコードについて説明するコメントを示します。
ヒント: JavaScriptの「new」キーワードを使用すると、任意のタイプのEventオブジェクトの新しいインスタンスを生成できます。
var NeedsTimingInfo = true; /* needed for .sendAfterBeats() to work */
function HandleMIDI() {
var on = new NoteOn; /* make a new note on */
on.pitch = 60; /* set its pitch to C3 */
on.send(); /* send the note */
var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value (to C3) */
off.sendAfterBeats(1); /* send a note off one beat later */
}
チュートリアルスクリプト15: プラグインの制御
MainStageで、ユーザによる定義が可能なMIDI CCメッセージを作成したり、プラグインのパラメータを制御したりできます。TargetEventは、メニューから変更されるパラメータを読み取ります。ユーザは割り当て先のMIDI CCを選択できます。または、「Learn Plug-in Parameter」機能を使い、Scripterと同じチャンネルストリップにあってScripterよりもあと(下)に挿入されているプラグインのパラメータを割り当てることもできます。選択した割り当て先はプラグインの設定と共に保存されます。
「/*」の後ろのテキストは、JavaScriptコードについて説明するコメントを示します。
ヒント: JavaScriptの「new」キーワードを使用すると、任意のタイプのEventオブジェクトの新しいインスタンスを生成できます。
TargetEvent properties:
TargetEvent.target(string) /* Name of target menu entry */
TargetEvent.value(float) /* Value of set Target from 0.0 to 1.0 */
以下のコードではモジュレーションホイールでプラグインのパラメータを制御します。チュートリアルスクリプト15の機能をテストするには、同じチャンネルにプラグインまたはソフトウェア音源を挿入し、スクリプトを実行します。メニューから「Learn Plug-In Parameter」を選択します。続いて、プラグインの任意のパラメータをクリックし、モジュレーションホイールで制御します。
モジュレーションホイールによる制御対象についてのメニューを作成するには、メニュー項目に名前を付け、この項目を「target」タイプに設定します。
var PluginParameters = [
/* parameter 0 */
{
name:"Modwheel Target",
type:"target"
}];
チュートリアルスクリプト15では、ScripterがMIDIイベントを受信するたびにHandleMIDIを呼び出します。以下のコードでは、メニューで選択されたターゲットにモジュレーションホイールをマップし直します。
function HandleMIDI(incomingEvent)
{
/* remap modulation to target selected in menu and
check for incoming CC event with number 1 (Modwheel) */
if ((incomingEvent instanceof ControlChange) && (incomingEvent.number == 1))
{
var newEvent = new TargetEvent(); /* create new Target event */
newEvent.target = "Modwheel Target"; /* name the menu entry to be used by this event */
newEvent.value = incomingEvent.value / 127; /* rescale from 0..127 to 0.0...1.0 */
newEvent.send(); /* send the event */
} else
{
/* send all other events */
incomingEvent.send();
};
};