Microsoft DirectX 8.0 (C++)

チャンネル

チャンネルは、パフォーマンス内の 1 つのパートに固有のメッセージの送信先である。たとえばチャンネルは、音色にサウンドを発生させるノートオン メッセージを受け取ったり、パートに別の音色を割り当てるプログラム チェンジ メッセージを受け取る。「MIDI チャンネル メッセージ」を参照すること。

MIDI 1.0 規格では、16 個の MIDI チャンネルがあり、一度に 16 を超える音色は演奏できないことを意味している。DirectMusic では、この規格に対応すると同時に、アプリケーションがより多くのチャンネルを同時に利用できるように、チャンネル グループが作成される。最大 65,536 個のチャンネル グループが同時に存在し、それぞれに 16 個のチャンネルが含まれるので、チャンネル総数は 100 万以上に上る。特定のポートに、そのポートがサポートする範囲で任意の数のチャンネル グループを割り当てることができる。MIDI ハードウェア ポートには、1 つのチャンネル グループしか割り当てることができない。

システム エクスクルーシブ メッセージは、1 つのチャンネル グループ内の 16 チャンネルのすべてに対して送信できるが、ほかのチャンネル グループ宛てには送信できない。

DirectMusic パフォーマンス内のすべてのパートは、固有のパフォーマンス チャンネル、つまり P チャンネルを持つ。パフォーマンス チャンネルは、特定のポートに対する特定のグループ内の特定の MIDI チャンネルを表す。パフォーマンスがあるバンドを選択すると、そのバンド内の各音色は 1 つのパフォーマンス チャンネルにマップされ、そのチャンネルのパートはその音色で演奏される。

オーディオパスが使用されている場合は、異なるオーディオパス上の同一のパフォーマンス チャンネルが異なる出力チャンネルにマップされる。

チャンネルの優先順位

同時に演奏できるノートの数は、ポートで利用できるボイス数によって制限される。ボイスは、チャンネルで演奏される 1 つのノートまたはウェーブを合成する、リソースのセットである。利用できるボイスの数より多くのノートが演奏される場合は、シンセサイザによって、1 つまたは複数のノートが抑制されなければならない。どのノートを演奏するかは、現在ノートを演奏しているボイスの優先順位によって決定され、これはチャンネルの優先順位に基づく。デフォルトでは、チャンネルはインデックス値に基づいて順位付けされる。ただし、チャンネル 10 は MIDI パーカッション チャンネルで、優先順位は最も高くなる。

アプリケーションおよびシンセサイザでは、独自にチャンネルの優先順位を設定できる。詳細については、IDirectMusicPort8::GetChannelPriority の「注意」を参照すること。「DMUS_CHANNEL_PRIORITY_PMSG」も参照すること。