Sdílet prostřednictvím


Exponování vašeho syntetizátoru jako legacy zařízení

Možná budete chtít napsat jeden ovladač zařízení, který zpřístupní váš syntetizátorový hardware jako zařízení DirectMusic i jako starší zařízení MIDI (to znamená prostřednictvím rozhraní API Windows Multimedia midiOutXxx). Tato technika může být užitečná v následujících třech případech:

  1. Pokud zařízení nepodporuje DLS. Příklady zahrnují ovladač MPU-401 (viz ukázku mpu401 v sadě Windows Driver Kit [WDK]), zařízení, které má pouze pevnou sadu ROM, a softwareový syntetizátor s pevně danou funkcí (například FM).

    V tomto případě může zařízení vystavit starší rozhraní MIDI i rozhraní DirectMusic. Měl by vystavit pouze jeden starší MIDI konektor. Nejprve je důležité uvést pin se zastaralým rozhraním, aby ho WDM Audio rozpoznalo jako zastaralé zařízení MIDI.

  2. Pokud zařízení podporuje DLS, ale zapne se ve stavu zatížení. Toto zařízení má paměť RAM pro DLS i ROM obsahující tabulky vln GM/GS/XG.

    V tomto případě může zařízení také vystavit obě rozhraní. Pokud se obě rozhraní vzájemně vylučují (to znamená, že pokud si něco stáhnete a ROM není viditelná), měla by to být jedna zástrčka se dvěma rozhraními, z čehož si můžete vybrat (na rozdíl od dvou zástrček).

  3. Když zařízení podporuje DLS, ale zapne se "prázdný" (například softwarový syntetizátor DirectMusic), a proto potřebuje stáhnout DLS pro inicializaci své vlnové tabulky.

    Tato inicializace není nutná, pokud zařízení nevyžaduje stahování DLS (pokud má například výchozí ukázku nastavenou v ROM) nebo pokud je otevřený pin DirectMusic (rozhraní API DirectMusic zajišťují, aby stahování DLS probíhalo).

    Zpřístupnění zařízení DLS prostřednictvím starších rozhraní API vyžaduje určité dodatečné úsilí. Při otevření staršího pinu na zařízení, které vyžaduje instrumenty DLS, by měl ovladač vyhledat a otevřít soubor obsahující kolekci DLS k použití. Ovladač by pak měl zachytit změny v aktualizacích a bankách, načíst příslušná data ze souboru DLS a provést potřebné DLS stažení na zařízení.

    Tento případ je problematický, protože ovladač systému WDMAud a ostatní klienti si nejsou vědomi, že potřebují stáhnout kolekci. Jednoduše začnou posílat aktualizace a noty MIDI.