2009-04-21 15 views
5

Tengo una guitarra Yamaha MIDI que, cuando reproduzco un archivo MIDI codificado con el estándar MIDI XG, hace que ciertas luces de la guitarra se enciendan y apaguen. Estoy tratando de determinar el evento MIDI que causa esto para poder enviar el mismo evento mediante programación sin el uso de un archivo MIDI (de la misma manera que puedo enviar un comando Note On (144) o Note Off (128)).XG Formato de archivo MIDI

Sin embargo, aunque he podido localizar una copia del protocolo MIDI, no he podido localizar el protocolo XG MIDI. ¿Hay alguna manera, además de tratar de enviar todos los comandos posibles hasta que encuentre el comando apropiado, para determinar cuál es el evento MIDI que está causando que las luces cambien de estado? ¿O hay algún lugar donde pueda obtener una copia del protocolo XG MIDI?

+0

Esta pregunta no está relacionada con la programación y no pertenece a SO. Recomiendo leer un manual de su instrumento. –

+1

Eso no es correcto. Estoy hablando de automatizar el envío de dicha información, que sería una pregunta de programación. – Elie

Respuesta

3

Wikipedia: "En 1999, el estándar oficial de GM [General MIDI] fue actualizado para incluir más controladores, parches, RPN y mensajes SysEx, en un intento de reconciliar las adiciones Roland GS y XG de Yamaha en conflicto y de propiedad" Esto se llamó General MIDI 2.

Recomiendo examinar lo que Java (javax.sound.midi) tiene para ofrecer (C# parece carecer de una biblioteca MIDI sólida). Lea en MetaMessage, ShortMessage, SysexMessage y Patch. Por lo que entiendo, los mensajes especiales del sistema se envían a través de SysexMessage (los datos de iluminación pueden estar aquí).

Si necesita un código de muestra, mire Java Sound Resources.

Otros enlaces que he encontrado:

4

Los manuales de Yamaha para sus productos detalle la información que busca. Los comandos XG son específicos del dispositivo. Algunos comandos XG dan acceso directo a la memoria del dispositivo y mi manual para el generador de tonos MU2000 advierte que "puede dañar la unidad enviando datos incorrectos"

1

Para una biblioteca midi .NET administrada busque el kit de herramientas C# Midi en el proyecto de código .com.

4

dos cosas:

  1. XG es la extensión semántica del protocolo MIDI. No cambia nada en la estructura del archivo MIDI. Lo único es que si usa un instrumento compatible con XG para grabar, por ejemplo, cambios en la resonancia del filtro, causará el mismo efecto en cualquier otro instrumento XG. Pero en el nivel de procotol MIDI, todavía tendrá el mensaje CC (Control Change) # 71 (IIRC).

  2. El protocolo MIDI es muy extensible y deja mucho espacio para los fabricantes. No solo puede usar mensajes CC, sino también números de parámetros registrados (RPN) y NRPN (no registrados). Además de eso, tienes mensajes exclusivos del sistema (SysEx) y apostaría a que un mensaje SysEx apropiadamente diseñado podría cambiar las luces de la guitarra. Intente obtener la llamada "Lista de datos" para su instrumento, debe incluir toda la información sobre los mensajes MIDI que está enviando/recibiendo su guitarra.

0

En última instancia, necesitará encontrar esa información del fabricante. Es probable que sea un mensaje de sysex, aunque también podría ser un controlador.

Recorrer todos los controladores es bastante simple en el software para que pueda intentarlo si lo desea. Pero las posibilidades de tropezar con el mensaje correcto de sysex por accidente o búsqueda exhaustiva son casi astronómicas.

Busque en el reverso de sus manuales. Puede estar ahí. Si no, busque el sysex de su dispositivo en google. De lo contrario, deberás pedirle a Yamaha la información.