Share via


2 つの MIDI ソースからの MIDI データの処理

MIDI サブシステムは、同時再生のために 2 つのデータ ソースから 1 つの MIDI 出力デバイスに MIDI メッセージをルーティングできます。 たとえば、1 つのソースには、バックグラウンド ミュージックや、事前に記録され、ファイルに格納されているベースラインを指定できます。 2 つ目のソースは、キーボードやギターなどの MIDI 音源からのライブ データです。

どちらのデータ ソースも、1 つのハンドルで識別される 1 つの MIDI デバイスに MIDI データを送信します。 midiStreamOut 関数と 1 つ以上のストリーム バッファーを使用して、1 つのデータ ストリームを送信します。 このデータ ストリームには、通常、バッファーにパックされた事前に記録されたデータが含まれます。

midiOutShortMsg 関数を使用して、2 番目のデータ ストリーム (通常は MIDI インストルメントから) を非同期に送信します。 ストリーム バッファーの実行中の状態は、2 番目のデータ ストリームによって行われた非同期呼び出しの影響を受けなくなります。

midiOutShortMsg で送信される短いメッセージは、ステータス バイトと適切なデータ バイト数を含む完全な MIDI メッセージである必要があります。 状態バイトを省略すると、 midiOutShortMsg は エラーを返します。 (ただし、ストリーム出力の実行中の状態はありません)。