次の方法で共有


ご利用のシンセサイザーをレガシ デバイスとして公開

DirectMusic デバイスとレガシ MIDI デバイスの両方として (つまり、Windows マルチメディア midiOutXxx API を介して) シンセ ハードウェアを公開する 1 つのデバイス ドライバーを作成できます。 この手法は、次の 3 つのケースで役立ちます。

  1. デバイスが DLS をサポートしていない場合。 たとえば、MPU-401 ドライバー (Windows Driver Kit [WDK] の mpu401 サンプルを参照)、ROM セットのみを持つデバイス、固定機能ソフトウェア シンセ (FM など) などがあります。

    この場合、デバイスはレガシ MIDI インターフェイスと DirectMusic インターフェイスを公開できます。 レガシ MIDI ピンを 1 つだけ公開する必要があります。 WDM オーディオは、レガシ MIDI デバイスとして列挙されるよう、最初にレガシ インターフェイスでピンを一覧表示することが重要です。

  2. デバイスで DLS がサポートされているが、読み込まれた状態で電源が入っている場合。 このデバイスには、DLS 用の RAM と GM/GS/XG wave テーブルを含む ROM の両方があります。

    この場合、デバイスは両方のインターフェイスを公開することもできます。 2 つのインターフェイスが相互に排他的な場合 (つまり、何かをダウンロードすると ROM が表示されない場合)、選択対象となる 2 つのインターフェイスを持つ 1 つのピン (2 つのピンではなく) にする必要があります。

  3. デバイスで DLS がサポートされているが、"空" (DirectMusic ソフトウェア シンセなど) の電源をオンにし、wave テーブルを初期化するために DLS ダウンロードが必要な場合。

    この初期化は、デバイスが DLS のダウンロードを必要としない場合 (たとえば、ROM に既定のサンプルが設定されている場合)、または DirectMusic ピンが開かれている場合 (DirectMusic API によって DLS のダウンロードが確実に実行される) 場合は必要ありません。

    レガシ API を使用して DLS デバイスを公開するには、追加の作業が必要です。 DLS インストルメントを必要とするデバイスでレガシ ピンを開くと、ドライバーは、使用する DLS コレクションを含むファイルを見つけて開く必要があります。 ドライバーは、更新プログラムとバンクの変更をインターセプトして、DLS ファイルから適切なデータを取得し、デバイスに必要な DLS ダウンロードを実行する必要があります。

    WDMAud システム ドライバーと他のクライアントがコレクションをダウンロードする必要があることを認識していないため、このケースは問題になります。 MIDI 更新の変更とメモの送信が開始されるだけです。