MainStage: ProcessMIDI関数

ProcessMIDI関数

ProcessMIDI()関数を使用すると、周期的な(一般にタイミングに基づく)タスクを実行できます。この機能はシーケンサーやアルペジエータなどのテンポに基づくMIDIエフェクトを記述するときに使用します。一般に、ProcessMIDIは、ホストからの音楽的なタイミング情報を使用しないアプリケーションには不要です。ProcessMIDIは「処理ブロック」ごとに1回ずつ呼び出されます。処理ブロックは、ホストのオーディオ設定(サンプルレートおよびバッファサイズ)によって指定されます。

この関数は、TimingInfoオブジェクトと組み合わせて、 MainStage 3からのタイミング情報を利用するためによく使われます。以下にProcessMIDIとTimingInfoオブジェクトの使いかたの例を示します。JavaScript TimingInfoオブジェクトを使うも参照してください。

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

重要:GetTimingInfo機能を有効にするには、var NeedsTimingInfo = true;をグローバル変数として記述する(関数の外側に記述する)必要があります。

チュートリアルスクリプト4: MIDIコールバックの処理

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

/* Define NeedsTimingInfo as true at the global level to enable GetHostInfo() */ var NeedsTimingInfo = true; function ProcessMIDI() { var info = GetTimingInfo(); /* get a TimingInfo object from the host if the transport is running */ if (info.playing) { Trace(info.tempo); /* print the tempo in the plug-in console */ } }
公開日: 2019/09/06
役に立ちましたか?