PROTOCOLOS DE CONTROL
MIDI
Estructura básica del protocolo: mensajes y canales MIDI
Autor: Alonso Gimeno
Un mensaje MIDI se compone de un byte, al que siguen uno o dos bytes de datos, mediante los cuales se acaba de completar la información que se envía.
Los primeros ocho bits, correspondientes al primer byte, indican qué mensaje en concreto se está enviando, mientras que los siguientes ayudan a dar datos más precisos contando con más variables.
Estructura básica del protocolo: mensajes y canales MIDI
Autor: Alonso Gimeno
Un mensaje MIDI se compone de un byte, al que siguen uno o dos bytes de datos, mediante los cuales se acaba de completar la información que se envía.
Los primeros ocho bits, correspondientes al primer byte, indican qué mensaje en concreto se está enviando, mientras que los siguientes ayudan a dar datos más precisos contando con más variables.
Captura del teclado midi virtual de Cubase 5.
El MIDI, al estar muy relacionado con la música, es nombrado usualmente como si fueran notas musicales, yendo desde la nota imaginaria Do -2 hasta un Sol 8. En usos musicales suele usarse la parte central del teclado como representación de las notas que se quieren tocar, de manera que si pulsas un DO central, envías el mensaje de que quieres hacer sonar un DO central.
Al tener muchas notas de más, que no se utilizan para música, muchos secuenciadores las utilizan para enviar distintos mensajes como puedan ser un cambio de canal, un cambio de instrumento, etc.
El MIDI, al estar muy relacionado con la música, es nombrado usualmente como si fueran notas musicales, yendo desde la nota imaginaria Do -2 hasta un Sol 8. En usos musicales suele usarse la parte central del teclado como representación de las notas que se quieren tocar, de manera que si pulsas un DO central, envías el mensaje de que quieres hacer sonar un DO central.
Al tener muchas notas de más, que no se utilizan para música, muchos secuenciadores las utilizan para enviar distintos mensajes como puedan ser un cambio de canal, un cambio de instrumento, etc.
A la izquierda tenemos algunos ejemplos de para qué sirven los otros 2 bytes de datos en la transmisión de mensajes midi.
La velocidad es, valga la redundancia, la velocidad de ataque con la que el mensaje es enviado (o en muchos casos, la tecla es pulsada), infiriendo en que a mayor velocidad de ataque, mayor volumen (aunque esto sea un estándar también puede producir que suene distinto, por ejemplo, en otros muchos casos). El pitchbend suele ser enviado por un mensaje ajeno al propio mensaje de la nota, siendo usualmente enviado por una rueda que altera el mensaje original, haciéndolo mayor o menor, que suele derivar en una nota más aguda o más grave. El aftertouch no es muy usual, y sirve para modificar la nota una vez ha sido pulsada (es como la velocidad, solo que no se envía a la vez que el mensaje original). |
Por supuesto, existen más variables que enviar en los últimos 2 bytes del mensaje, pero estos son los más usuales.
Todo esto respecto a los mensajes, pero todo mensaje debe ser enviado por un canal, y es aquí donde entran en juego los canales de transmisión de MIDI.
Los mensajes MIDI viajan por distintos canales, que a su vez viajan por puertos, permitiendo cada uno de estos puertos hasta un máximo de 16 canales distintos.
Sin embargo, lo de distintos tiene su truco, porque podemos tener asignados por ejemplo 5 instrumentos midi a un mismo instrumento y solamente ocuparan 1 de los 16 canales en vez de los 5 que dictaría la lógica.
Todos estos canales son independientes entre sí, pudiendo enviar mensajes con total libertad; sin embargo, si tenemos varios instrumentos asignados a un canal si enviamos un mensaje que contenga bytes de datos (velocidad, pitch, etc) afectará por igual a todos los instrumentos que estén en el mismo canal (en el ejemplo anterior esto provocaría que los cambios efectuados en uno de los instrumentos afecte a los otros cuatro), de manera que a veces conviene ponerlos en distintos canales, aunque esto merme el número de los mismos.
Los primeros 16 canales son los asignados a cada MIDI OUT del sistema y son los que gestionan los mensajes, mientras que los canales 17-32 (llamados canal básico) se utilizan para distinguir unos canales de otros que tengan un mismo instrumento midi asignado.
Bibliografía
http://www.css-audiovisual.com/areas/guias/midi-mensajes.htm
http://musicareas.com/software/midi1.phtml