martes, 5 de febrero de 2008

MIDI Especificación. Mensajes excusivos.

Después de haber traducido la especificación de los mensajes midi, voy a traducir los que menos entiendo. los famosos mensajes exclusivos.
Traducido de aqúi


Mensajes Exclusivos del sistema (es decir, SysEx)

Propósito :
Se utilizan para enviar una gran cantidad de datos a un dispositivo MIDI, como un volcado de memoria de su patch(conjunto de instrumentos o datos del secuenciador o los datos de forma de onda(datos de audio). Asimismo, SysEx pueden ser utilizados para transmitir la información que es particular de un modelo de dispositivo. Por ejemplo, un mensaje SysEx podría ser usado para enviar la información del operador en un Sintetizador Roland de Modelado Físico. Esta información sería probablemente inútil para un sampler AKAI que reproduce muestras de sonido. (Por el contrario, prácticamente todos los dispositivos responden a un control de rueda de modulación, por ejemplo, así que tiene sentido tener definido un mensaje de controlador de modulación que todos los fabricantes puedan apoyar con ese fin).

Status:

Comienza con el byte de estado 0xF0. y termina con un byte de estado 0xF7 (es decir, después de los bytes de datos).

Datos:

Puede ser cualquier número de bytes de datos entre el 0xF0 inicial y el 0xF7 final. El más importante es el primer byte de datos (después del 0xF0), que debe ser una identificación del fabricante.

Errata ?????

Prácticamente todos los dispositivos MIDI definen el formato de su propio conjunto de mensajes SysEx (es decir, que sólo ellos lo entienden). El único punto en común de los mensajes SysEx de diversos modelos de dispositivos MIDI es que todos los mensajes SysEx debe comenzar con un estado 0xF0 y terminar con un estado 0xF7. En otras palabras, este es el único mensaje MIDI que tiene 2 bytes de estado, uno al inicio y otro al final.
Entre estos dos bytes de estado, cualquier número de bytes de datos (todos a cero el bit # 7, es decir, el valor de 0 a 127) puede ser enviado. Por eso necesita un SysEx 0xF7 estado byte al final, de modo que un dispositivo MIDI sabrá cuando el final del mensaje aparece, incluso si los datos del mensaje no es entendido por el dispositivo (es decir, el dispositivo no sabe Exactamente el número de bytes de datos a esperar antes del 0xF7).

Por lo general, el primer byte de datos (después del 0xF0) será un ID definido por el fabricante. La organización MMA ha asignado valores del byte ID a varios fabricantes, de manera que un dispositivo puede determinar si un mensaje SysEx se destina para el. Por ejemplo, un dispositivo de Roland espera un byte ID de 0x41. Si un dispositivo de Roland recibe un mensaje SysEx cuyo byte ID no es 0x41, el aparato hace caso omiso de todos los del resto de los bytes hasta que llega el byte final 0xF7 que indica que el mensaje SysEx ha terminado.

El objetivo de los restantes bytes de datos, que pueden ser muchos, son determinados por el fabricante . Normalmente, los fabricantes al ID del fabricante le sigue un byte de Número de identificación asi, un dispositivo no sólo puede determinar que hay un mensaje SysEx correcto del fabricante, sino también que es un mensaje SysEx específicamente para este modelo. Luego, después de la ID del modelo puede seguir otro byte que el dispositivo utiliza para determinar el tipo de mensaje SysEx , y, por lo tanto, el número de bytes de datos más que seguirán. Algunos fabricantes tienen un byte de checksum, (por lo general, justo antes de la 0xF7) que se utiliza para verificar la integridad de la transmisión del mensaje.
El byte de estado 0xF7 se utiliza para marcar el final de un mensaje SysEx. Nunca debe ocurrir sin precederle un Estado 0xF0. En el caso de que un dispositivo experimente tal condición (es decir, tal vez el cable MIDI se conectó a mitad de la transmisión de un mensaje SysEx), el dispositivo debe ignorar el Estado 0xF7.
Además, aunque el 0xF7 supone que marca el final de un mensaje SysEx, de hecho, cualquier byte de estado (a excepción de la categoría de mensajes en tiempo real), debe causar el mensaje SysEx como "terminado" (es decir, "abortado". Ya que tal situación indica una situación anormal del MIDI). Por ejemplo, si un 0x90 se envió después de un 0xF0 (pero antes de la 0xF7), entonces el mensaje SysEx se considera abortado en ese momento. Cabe señalar que, como todos los Mensajes Comunes del Sistema, SysEx anula cualquier 'runing status' actual. En otras palabras, el siguiente mensaje de Categoria de Voz (tras el mensaje SysEx) debe comenzar con un Estado.


Vaaaaya, creo que lo he entendio casi todo.
La unica duda que tengo es ese : (a excepción de la categoría de mensajes en tiempo real)

No hay comentarios: