Acceda a la tarjeta de sonido o al dispositivo sintetizador del sistema operativo en Java [cerrado]
-
22-07-2019 - |
Pregunta
Cuando intento enumerar los dispositivos de sintetizador en Java (1.6.0), obtengo solo un dispositivo, Java Sound Synthesizer . Quiero usar el sintetizador en la tarjeta de sonido o cualquier otro sintetizador instalado, por ejemplo. El sintetizador de Microsoft. ¿Cómo puedo hacer eso? Si esta capacidad no está incorporada, ¿hay algún proyecto de código abierto que actúe como interfaz para los controladores de sintetizador instalados?
Solución 2
Frinika puede hacer esto, por lo que puede contener la respuesta.
Editar : en Java 1.5 en adelante, la mayoría de los dispositivos OS Midi aparecen como dispositivos a los que se puede acceder utilizando MidiSystem.getMidiDeviceInfo ()
y MidiSystem.getMididevice ( )
.
De acuerdo con las preguntas frecuentes de midi, no hay una buena manera de acceder al dispositivo Midi de la tarjeta de sonido como un sintetizador debido a problemas con la escritura de controladores personalizados para cada tarjeta de sonido y la obtención de información del hardware para que no hay estándar Midi.
Sin embargo, el sintetizador de hardware generalmente aparecerá como un MidiDevice al que se pueden enviar eventos. ( http://www.jsresources.org/faq_midi.html#use_hw_synth ).
Gracias a Arcane por señalarme en la dirección correcta.
Otros consejos
No creo que Java le permita especificar qué sintetizador instalado usar. La API generalmente solo proporciona un dispositivo por tipo (sintetizador, transmisor, etc.), por lo que obtendrá el valor predeterminado. Sospecho que la API de Java, en Windows, está utilizando la que se especifica en el panel de control como su dispositivo MIDI predeterminado.