Introducción al protocolo MIDI [Parte 1]

Tú como músico seguramente alguna vez te has visto en la necesidad de “llenar esos espacio vacios” que se producen al no contar con más músicos que ejecuten ciertos instrumentos durante algún ensayo o peor aún en una presentación en vivo. Seguro que te ha pasado y por más que buscas músicos locales no encuentras ¿cierto?.

Pues para esas circunstancias y otrás más el protocolo de comunicación MIDI te puede sacar de ese aprieto.

Dicho protocolo apareció por el año del 1983, fecha en la cual se tiene registrado el primer estandar MIDI. Este protocolo de comunicación es ampliamente usado actualmente y se creó por las complicaciones que trajo consigo el desarrollo de los primeros sintetizadores digitales puesto que cada empresa usaba su propio sistema de comunicación lo cual hacía casi imposible la compatibilidad entre sintetizadores.

La primera presentación del funcionamiento del protocolo MIDI se dio en el Northamerican Music Manufacturers Show en su edición del 1983 en Los Ángeles, California. La presentación consistió en usar dos sintetizadores de diferentes compañias enlazados por medio de cables MIDI, al ejecutar uno de los dos sintetizadores autómáticamente el otro sonaba con lo que el público quedó atónito.

Bueno dejemos un poco la historia y comencemos con la parte técnica. Una cosa que hay que dejar en claro es que el protocolo MIDI no transmite audio como tal, lo que lleva en sus entrañas son sólo mensajes de control por ejemplo, la nota a ejecutar, la presión de los dedos sobre la tecla, el sonido que se usará, el sustain, entre otros.

El protocolo MIDI está basado en una comunicación serial a una velocidad de 31 250 bits/segundo lo cual para aspectos musicales es lo suficientemente rápido. Hay que recalcar que la comunicación es unidireccional por lo cual sólo se puede transmitir información en un solo sentido a la vez.

MENSAJES MIDI

Para transferir toda la información que se genera en nuestro dispositivo MIDI se generan mensajes los cuales están compuestos por tres bytes, el primero es el byte de estado y los dos restantes son de datos.
Estos bytes si diferencian por el MSB (Most Significant Bit) de cada uno ya que los bytes de estado comienzan con un “1” mientras que los de datos con un “0” quedando de esta forma comprendido un mensaje MIDI:

1 _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _ _ 0 _ _ _ _ _ _ _ _

Existen ocho tipos de mensajes principalmente :

1) 000 Note Off      /     Termino de ejecuación de la nota(s)
2) 001 Note On       /    Inicio de ejecución de la nota(s)
3) 010 Aftertouch    /    Cambio de presión ejercida sin levantar el dedo totalmente de la tecla
4) 011 Continuous controller    /    Perillas, pedales, ruedillas de modulación, etc
5) 100 Patch change   /    Cambio del patch de sonido (como en los teclados Casio XD)
6) 101 Channel Pressure    /    Presión que ejerce el dedo sobre la tecla del controlador
7) 110 Pitch bend   /   Control del pitch,
8) 111 System Exclusive   /    Mensajes de cada fabricante

Desmenucemos un ejemplo de mensaje. Dicho ejemplo consistirá en subir el volumen de un dispositivo MIDI en el canal 4

Primero preparemos el byte de status

1 _ _ _ _ _ _ _       _ _ _ _ _ _ _ _       _ _ _ _ _ _ _ _

Ahora seleccionemos el tipo de mensaje en este caso es un “continuous controller” 011.

1 0 1 1 _ _ _ _        _ _ _ _ _ _ _ _         _ _ _ _ _ _ _ _

El volumen aumentará en el canal 4. En binario el número cuatro es 100 así que anteponemos un cero para completar los cuatro digitos que deben de ir en la parte final del status byte por lo que nos queda 0100.

1 0 1 1 0 1 0 0      _ _ _ _ _ _ _ _         _ _ _ _ _ _ _ _

Ahora pasamos a la parte del primer data byte así que iniciamos con un 0 que es el identificador de un byte de datos.

1 0 1 1 0 1 0 0 0        _ _ _ _ _ _ _ _         _ _ _ _ _ _ _

Le indicamos que será el volumen la propiedad a manejar. Podríamos decir que los controles más comunes son volumen =control 7h, panning= control 10h, modulacion = control 1h. Muchos más controles los podemos encontrar en la documentación de midi.org dando en total 127 controles.

1 0 1 1 0 1 0 0       0 0 0 0 0 1 1 1        _ _ _ _ _ _ _ _

Ahora iniciamos el segundo byte de datos para indicarle el valor a modificar

1 0 1 1 0 1 0 0        0 0 0 0 0 1 1 1        0 _ _ _ _ _ _ _

Y ahora asignamos el valor nuevo al volumen del canal 4. Vamos a asignarle la mitad del total o sea 64 ya que 127 es el máximo y 0 el mínimo.

1 0 1 1 0 1 0 0         0 0 0 0 0 1 1 1        0 1 0 0 0 0 0 0

Y, ¡tada!, listo ya tenemos nuestro mensaje MIDI completado.

101101000000011101000000

Mucha gente principiante creé que el MIDI es un instrumento físico o un archivo de computadora esto es erroneo puesto que el MIDI es un protocolo de comunicación, un protocolo el cual da las instrucciones para realizar algo. Por esto es que está mal entendido el concepto de MIDI al decir “convertir un archivo wav a midi”. Esto no se puede llevar a cabo de una forma correcta ya que como lo mencioné el archivo MIDI sólo contiene instrucciones a seguir que entienden determinados programas, no contienen la información de audio como un wav.

Hasta aquí dejaré la primera parte de esta serie de artículos sobre el fabuloso protocolo MIDI.Hay mucho más de que hablar pero lo dejaremos para una siguiente entrega.

¡Hasta la próxima!.

Un comentario en “Introducción al protocolo MIDI [Parte 1]

  1. Pingback: Desmontando un controlador MIDI | EL RECOVECO DE HIRI

Deja un comentario