Condividi tramite


Esposizione del sintetizzatore come dispositivo legacy

È possibile scrivere un singolo driver di dispositivo che espone l'hardware synth come dispositivo DirectMusic e un dispositivo MIDI legacy,ovvero tramitel'API MIDI multimediale Windows. Questa tecnica può essere utile nei tre casi seguenti:

  1. Se il dispositivo non supporta DLS. Gli esempi includono il driver MPU-401 (vedere l'esempio mpu401 in Windows Driver Kit [WDK]), un dispositivo che ha solo un set ROM e un synth software a funzione fissa (ad esempio FM).

    In questo caso, il dispositivo può esporre un'interfaccia MIDI legacy e un'interfaccia DirectMusic. Dovrebbe esporre solo un pin MIDI legacy. È importante elencare prima il pin con l'interfaccia legacy in modo che WDM Audio enumera come dispositivo MIDI legacy.

  2. Se il dispositivo supporta DLS, ma carica in uno stato caricato. Questo dispositivo include sia RAM per DLS che ROM contenenti tabelle wave GM/GS/XG.

    In questo caso, il dispositivo può anche esporre entrambe le interfacce. Se le due interfacce si escludono a vicenda (ovvero, se si scarica qualcosa, la ROM non è visibile), dovrebbe essere un singolo pin con due interfacce da scegliere (anziché due pin).

  3. Quando il dispositivo supporta DLS, ma consente di attivare "vuoto" (ad esempio, il synth software DirectMusic) e quindi richiede i download DLS per inizializzare la tabella wave.

    Questa inizializzazione non è necessaria se il dispositivo non richiede download DLS (se ha un set di esempio predefinito in ROM, ad esempio) o se viene aperto un pin DirectMusic (le API DirectMusic assicurano che i download DI DLS si verifichino).

    L'esposizione del dispositivo DLS tramite le API legacy richiede un lavoro aggiuntivo. Quando un pin legacy viene aperto in un dispositivo che richiede strumenti DLS, il driver deve individuare e aprire un file contenente la raccolta DLS da usare. Il driver deve quindi intercettare le modifiche di aggiornamento e banca, recuperare i dati appropriati dal file DLS ed eseguire i download di DLS necessari nel dispositivo.

    Questo caso è problematico perché il driver di sistema WDMAud e altri client non sono consapevoli che devono scaricare una raccolta. Iniziano a inviare modifiche e note di aggiornamento MIDI.