Freigeben über


Verfügbarmachen Ihres Synthesizers als Legacygerät

Möglicherweise möchten Sie einen einzelnen Gerätetreiber schreiben, der Ihre Synthiehardware sowohl als DirectMusic-Gerät als auch als Legacy-MIDI-Gerät verfügbar macht (d. a. über die Windows Multimedia midiOutXxx-API ). Dieses Verfahren kann in den folgenden drei Fällen nützlich sein:

  1. Wenn das Gerät DLS nicht unterstützt. Beispiele hierfür sind der MPU-401-Treiber (siehe mpu401-Beispiel im Windows Driver Kit [WDK]), ein Gerät, das nur über einen ROM-Satz verfügt, und einen Softwaresynth mit fester Funktion (z. B. FM).

    In diesem Fall kann das Gerät eine Legacy-MIDI-Schnittstelle sowie eine DirectMusic-Schnittstelle verfügbar machen. Es sollte nur ein Legacy-MIDI-Pin verfügbar gemacht werden. Es ist wichtig, zuerst den Pin mit der Legacyschnittstelle aufzulisten, damit WDM Audio sie als Legacy-MIDI-Gerät aufzählt.

  2. Wenn das Gerät DLS unterstützt, aber im geladenen Zustand gestartet wird. Dieses Gerät verfügt sowohl über RAM für DLS als auch ÜBER ROM mit GM/GS/XG-Wellentabellen.

    In diesem Fall kann das Gerät auch beide Schnittstellen verfügbar machen. Wenn sich die beiden Schnittstellen gegenseitig ausschließen (das heißt, wenn Sie etwas heruntergeladen haben, ist das ROM nicht sichtbar), dann sollte es sich um einen einzelnen Pin mit zwei Schnittstellen handeln, aus denen Sie wählen können (im Gegensatz zu zwei Pins).

  3. Wenn das Gerät DLS unterstützt, aber "leer" (z. B. den DirectMusic-Softwaresynth) antreibt und daher DLS-Downloads benötigt, um die Wellentabelle zu initialisieren.

    Diese Initialisierung ist unnötig, wenn das Gerät keine DLS-Downloads erfordert (wenn z. B. ein Standardbeispiel in ROM festgelegt ist) oder wenn eine DirectMusic-Pin geöffnet wird (die DirectMusic-APIs stellen sicher, dass DLS-Downloads erfolgen).

    Das Verfügbarmachen Ihres DLS-Geräts über die Legacy-APIs erfordert zusätzlichen Aufwand. Wenn ein Legacy-Pin auf einem Gerät geöffnet wird, das DLS-Instrumente erfordert, sollte der Treiber eine Datei suchen und öffnen, die die zu verwendende DLS-Sammlung enthält. Der Treiber sollte dann Update- und Bankänderungen abfangen, die entsprechenden Daten aus der DLS-Datei abrufen und die erforderlichen DLS-Downloads auf das Gerät durchführen.

    Dieser Fall ist problematisch, da der WDMAud-Systemtreiber und andere Clients nicht wissen, dass sie eine Sammlung herunterladen müssen. Sie beginnen einfach, MIDI-Updateänderungen und -Notizen zu senden.