Platform SDK: DirectX |
チャンネルは、パフォーマンス内の 1 つのパートに固有のメッセージの送信先である。たとえばチャンネルは、音色にサウンドを発生させるノートオン メッセージを受け取ったり、パートに別の音色を割り当てるプログラム チェンジ メッセージを受け取る (「MIDI チャンネル メッセージ」を参照すること)。
MIDI 1.0 規格では、16 個の MIDI チャンネルがあり、一度に 16 を超える音色は演奏できないことを意味している。DirectMusic では、この規格に対応すると同時に、アプリケーションがより多くのチャンネルを同時に利用できるように、チャンネル グループが作成される。最大 65,536 個のチャンネル グループが同時に存在し、それぞれに 16 個のチャンネルが含まれるので、チャンネル総数は 100 万以上に上る。特定のポートに、そのポートがサポートする範囲で任意の数のチャンネル グループを割り当てることができる。従来の MIDI ハードウェア ポートには、1 つのチャンネル グループしか割り当てることができない。
システム エクスクルーシブ メッセージは、1 つのチャンネル グループ内の 16 チャンネルのすべてに対して送信できるが、ほかのチャンネル グループ宛てには送信できない。
DirectMusic パフォーマンス内のすべての音色は、固有のパフォーマンス チャンネル、つまり P チャンネルを持つ。P チャンネルは、特定のポートに対する特定のグループ内の特定の MIDI チャンネルを表す。パフォーマンスがあるバンドを選択すると、そのバンド内の各音色は 1 つの P チャンネルにマップされる。
同時に演奏できる音符の数は、ポートで利用できる発音数によって制限される (この数は、DMUS_PORTCAPS 構造体の dwMaxVoices メンバで指定できる)。
同時に演奏できる音符の数は、ポートで利用できる発音数によって制限される (この数は、DMUS_PORTCAPS 型の lMaxVoices メンバで指定できる)。
発音は、チャンネルで演奏される 1 つの音符を合成する、リソースのセットである。利用できる発音の数より多くの音符が演奏される場合は、シンセサイザによって、1 つまたは複数の音符が抑制されなければならない。どの音符を演奏するかは、現在音符を演奏している発音の優先順位によって決定され、これはチャンネルの優先順位に基づく。デフォルトでは、チャンネルはインデックス値に基づいて順位付けされる。ただし、チャンネル 10 は MIDI パーカッション チャンネルで、優先順位は最も高くなる。
アプリケーションおよびシンセサイザでは、独自にチャンネルの優先順位を設定できる。詳細については、IDirectMusicPort::GetChannelPriority の「注意」を参照すること。DMUS_CHANNEL_PRIORITY_PMSG も参照すること。