CAPTULO 1 PROTOCOLO MIDI
1.0 Introduccin
Los msicos constantemente quieren ser capaces de controlar instrumentos musicales de
manera remota o automtica. El control remoto se presenta cuando el msico toca un
instrumento musical, y ese instrumento (uno o ms) controla a otros instrumentos
musicales.
Por ejemplo, los msicos algunas veces desean combinar el sonido de varios
instrumentos sonando al unsono para espesar o dar profundidad a una parte musical
determinada. El msico quiere mezclar y armonizar ciertos arreglos de esos instrumentos
no incluidos previamente. Tal vez desea mezclar los arreglos de un saxofn con 5
instrumentos diferentes para crear una seccin de saxofn con un sonido ms autntico
emulando a una banda completa. Pero, debido a que el msico slo tiene dos manos y
pies, no le es posible tocar 5 instrumentos a la vez a menos que l tenga un mtodo de
control remoto.
Tambin puede suceder que el msico desee utilizar slo un teclado fsico para controlar
numerosos e independientes mdulos de sonido. Anteriormente, cada instrumento
musical tena su propio mtodo integrado para controlarlo. Por ejemplo, un rgano
electrnico, un piano electrnico, un sintetizador, etc., cada uno tena su propio teclado
fsico integrado.
Esto se volvi un poco costoso, ya que el teclado fsico es una de las partes ms caras de
un instrumento. Tambin todos esos teclados tienden a ocupar mucho espacio, lo cual es
un problema para muchos msicos. Entonces surgi la idea de crear una pequea caja
la cual hiciera sonidos de teclado y a la cual se le pudiera conectar un teclado fsico
externo; tener otro tipo de cajas que hicieran sonidos de piano, cuerdas, etc., y que
pudieran interconectarse; todo con la finalidad de ahorrar dinero y espacio. Todo lo que
se necesita es un estndar para controlar de manera remota todas esas cajas con el
teclado.
El control automtico es cuando un msico utiliza algunos otros dispositivos para
interpretar un instrumento musical como si otro msico lo estuviera interpretando. Dicho
dispositivo es conocido como Secuenciador.
Por ejemplo, muchos msicos quieren ser capaces de tener pistas de fondo en una
interpretacin en vivo, pero utilizar cintas grabadas llega a ser incmodo, molesto y
limitante. Queran un mtodo que permitiera mayor flexibilidad y que les facilitara hacer
arreglos de manera alterna en el momento. Para lograr esto, en vez de tocar pistas pre-
grabadas, se pens en un mtodo que controlara automticamente sus instrumentos
durante su interpretacin utilizando un dispositivo que pudiera manipular
inteligentemente el arreglo (tal como una computadora).
Entonces, los msicos tuvieron la necesidad de controlar de manera remota y automtica
sus instrumentos musicales, y queran un mtodo que no estuviera sujeto a un producto
2
en particular de determinado fabricante, ni un tipo particular de instrumento. Deseaban un
estndar que pudiera servir para controlar cualquier dispositivo musical electrnico. Para
satisfacer esta necesidad, algunos fabricantes de instrumentos se reunieron a mediados de
1983 y crearon el MIDI, que significa Musical Instrument Digital Interface [1].
1.1 Comunicacin MIDI
MIDI es una especificacin para un protocolo de comunicacin entre sintetizadores
digitales y otros dispositivos de msica digitales. Fue desarrollado para ser tan simple y
general como fuera posible, para brindar a los fabricantes de sintetizadores gran
flexibilidad y poder interactuar sin problemas de comunicacin. El protocolo MIDI no
define la naturaleza o timbre del sonido del sintetizador, solamente describe la accin de
generar un sonido.
Como un lenguaje de comunicacin y control para instrumentos musicales, es imperativo
que el MIDI sea rpido. No tendra caso presionar una tecla en el teclado de un
sintetizador slo para escuchar la nota varios segundos despus. Debido a que es un
protocolo rpido y prctico se puede utilizar con otros dispositivos interactivos. Su
velocidad da la apariencia de respuesta instantnea a la accin del usuario.
MIDI es un protocolo de comunicacin serial que opera a 31,250 bits por segundo. Cada
byte tiene 8 bits, ms un bit de inicio y un bit de paro. Opera a 5V de DC. El conector
estndar MIDI es un conector de 5 terminales y usualmente todos los conectores en un
dispositivo son hembras, y ambas terminales de un cable MIDI son machos. Existe un
esquema de cableo especfico para entradas y salidas MIDI, como se muestra en la Figura
1.1:
Fig. 1.1 Conectores MIDI [2].
3
El circuito MIDI es un lazo de corriente de 5mA. Para evitar lazos a tierra y subsecuentes
errores de datos, la entrada cuenta con un opto-aislador. ste requiere menos de 5mA
para encenderse. El tiempo de subida y bajada para el opto-aislador debe ser menor a 2
microsegundos. La salida MIDI est compuesta por slo un buffer y algunas resistencias.
El conector THRU de MIDI est contenido por un buffer pasando por la seal de entrada
MIDI [2].
1.2 Conexin MIDI
Los conectores visibles de MIDI en un instrumento son jacks hembras del tipo DIN de 5
terminales. Se tienen jacks separados para seales MIDI entrantes (recibidas desde otro
instrumento que est enviando seales MIDI), y seales MIDI salientes (seales MIDI
que el instrumento crea y enva a otro dispositivo). Los jacks se ven de la siguiente
manera:
Fig. 1.2 Jacks DIN y Conexin MIDI [1].
Se utilizan cables MIDI (con conectores DIN macho) para conectar los jacks MIDI de
varios instrumentos, de tal manera que los instrumentos puedan pasar seales de uno a
otro. Se debe conectar el MIDI OUT de un instrumento al MIDI IN de otro instrumento,
y viceversa. Por ejemplo, en la Figura 1.2 muestra la conexin entre una interfaz MIDI de
una computadora a un teclado MIDI.
Algunos instrumentos tienen un tercer jack MIDI marcado como THRU. ste es utilizado
como su fuera un jack de salida, por consiguiente slo se puede conectar el jack THRU al
jack IN de otro instrumento. De hecho, el jack THRU es exactamente igual a un jack
OUT con una diferencia importante, cualquier seal que crea el instrumento es enviada a
la salida por su jack MIDI OUT, pero no por el jack MIDI THRU. Se debe ver al jack
THRU como un jack MIDI OUT sin procesar [1].
4
1.3 Mensaje MIDI
El protocolo MIDI es ms que simplemente jacks en un instrumento electrnico. Es un
extenso bloque de comandos musicales el cual utilizan los instrumentos musicales para
controlarse entre ellos. Los instrumentos MIDI pasan estos comandos a travs de cables
que conectan sus jacks.
Un comando MIDI consiste de 2 3 bytes de datos (un byte de estado y 1 2 bytes de
datos) que son solamente una serie de nmeros. Cada uno de estos grupos de nmeros es
conocido como mensaje. Los valores MIDI son expresados usualmente en notacin
hexadecimal. Todos los bytes de estado tienen un valor de 128 o mayor. Si se piensa en
trminos binarios, significa que el primer bit del byte de estado es siempre 1. Esto le hace
ms fcil al sintetizador determinar qu informacin est recibiendo, desde del primer bit
de un mensaje. De manera similar, todos los bytes de datos tienen un valor de 127 o
menor, as que su primer bit ser 0.
Esto significa que cada byte MIDI tiene un rango de 128 valores, de 0 a 127 para los
bytes de datos, y de 128 a 255 en los bytes de estado. La primera mitad del byte de
estado da el comando, la segunda da el canal.
Fig. 1.3 Diferentes bytes en mensaje MIDI [3].
El primer bit siempre es utilizado para indicar si se trata de un byte de Estado o Datos.
Los 4 bits menos significativos del byte de Estado son utilizados para indicar el nmero
de canal MIDI., dejando 3 bits para la instruccin. Como un byte de datos siempre est
asociado con el byte de estado que le precede, no se necesita nmero de canal, dejando 7
bits para datos [3].
Fig. 1.4 Ejemplo de mensaje MIDI [3].
Existen diferentes mensajes MIDI, y cada uno est relacionado con una accin musical
especfica. Por ejemplo, se tienen ciertos grupos de nmeros que le dicen a un
5
instrumento que debe haber un sonido (mensaje NOTE ON). Existe un grupo diferente de
nmeros que le dicen al instrumento que debe dejar de hacer sonido (NOTE OFF). En un
mensaje MIDI tpico, se envan tres piezas de informacin: la accin (NOTE ON, NOTE
OFF, CONTROLLER, etc.), el pitch (la frecuencia del sonido que define a la nota) y
velocity (bsicamente, qu tan alto se quiere que sea tocado el sonido).
Uno de estos nmeros dentro del mensaje NOTE ON o NOTE OFF le dice al instrumento
cul de sus teclas o notas debe empezar o dejar de sonar, respectivamente. Se debe tomar
en cuenta que el piano tiene 88 notas. Mientras que los instrumentos MIDI pueden tener
un mximo de 128 notas diferentes, aunque algunos instrumentos responden slo a
mensajes limitados a menores rangos.
Pero MIDI cuenta con una gran cantidad de mensajes adems de NOTE ON y NOTE
OFF. Se tiene un mensaje que le dice al instrumento que debe modificar su valor de pitch
wheel y qu tanto debe cambiar. Existe otro mensaje que le dice al instrumento que debe
presionar o soltar su pedal de sustain. De igual manera, un mensaje que le dice al
instrumento que cambie su volumen y qu tanto debe cambiarlo. As como uno ms que
le dice al instrumento que debe modificar su sonido.
De igual manera como en los mensajes NOTE ON y NOTE OFF, los otros mensajes son
automticamente generados cuando el msico toca el instrumento. Por ejemplo, si el
msico mueve el pitch wheel, un mensaje MIDI de pitch wheel es enviado por el jack
MIDI OUT del instrumento. Obviamente, este mensaje tiene un grupo diferente de
nmeros con respecto al mensaje de NOTE ON o NOTE OFF [1].
A continuacin se presentan en la Tabla 1.1 algunos comandos disponibles, notando lo
que especifica el byte de status:
Tabla 1.1 Comandos de bytes de status MIDI [1].
Valor (decimal) Valor (hexadecimal) Comando Bytes de Datos
128-143 80-8F Note Off 2 (nota, velocity)
144-159 90-9F Note On 2 (nota, velocity)
160-175 A0-AF Presin de Tecla 2 (nota, presin)
176-191 B0-BF Cambio de Control 2 (no. de control, valor)
Un controlador til es el 7B hexadecimal, el cual enva un mensaje de ALL NOTES
OFF en un canal designado. Es til para cuando se llegan a tener notas que no dejan de
sonar por algn error de sistema. Por ejemplo, para detener todas las notas en el canal
uno, se tendra que enviar B0 7B, sin necesidad de un segundo byte de datos [2].
1.4 Red MIDI
MIDI puede ser concebido como una red de rea local que es utilizada para conectar
varias piezas de equipo musical con microprocesadores. Normalmente opera en una
topologa simple de estrella lo cual significa que slo se tiene un dispositivo
controlador que enva mensajes a un determinado nmero de receptores.
6
Sin embargo, a diferencia de otras redes de estrella tpicas donde todos los dispositivos
receptores estn conectados directamente al controlador con su propio cable, la mayor
parte del hardware MIDI slo permite que los dispositivos sean conectados en una
topologa daisy-chain, para que compartan de manera efectiva el mismo cable, como se
puede ver en la Figura 1.4. Esto significa que si un mensaje va a ser enviado a slo un
dispositivo en la cadena, alguna direccin en software debe ser enviada tambin para
decirle a todos los dems dispositivos que deben ignorar el mensaje.
Fig. 1.5 Topologa Daisy-chain utilizada en red MIDI [3].
MIDI logra esto con un sistema de canales de software, lo cual comprende cada
dispositivo hardware en cada mensaje siendo asignado un nmero de canal en el rango de
1 a 16. Un dispositivo particular slo responder a un mensaje si estos dos nmeros
coinciden. El nmero de canal es enviado en los primeros 4 bits de cada byte de estado,
como se mostr previamente en la Figura 1.3.
Debe notarse que aunque la Figura 1.5 se vea como una red de anillo abierto, los
dispositivos Esclavos no se puede comunicar entre ellos, slo el dispositivo controlador
puede enviarles mensajes. Esto es, por lo tanto, un sistema de estrella [3].
7