You are on page 1of 7

INTRODUCCION AL PROTOCOLO MIDI

El siguiente es un resumen sobre MIDI basado principalmente en la Seccin 19 del libro


Sound Reinforcement Handbook (Gary Davis y Ralph Jones, Hall Leonard Pub.Corp.,
Milwaukee, 1987). Se han omitido numerosos datos que no servan al propsito de este
apunte y, a la vez, se han agregado otros que provienen de diversas fuentes (se ofrece una
bibliografa comentada al final). Se ha conservado la denominacin en ingls de numerosos
trminos, ya que su uso habitual as lo requiere.

Vale aclarar que este resumen fue realizado por Oscar Pablo Di Lisia, profesor de la ctedra
de Computacin Aplicada a la Msica, perteneciente a la carrera de Composicin con
Medios Electroacsticos, UNQ.

1- GENERALIDADES SOBRE MIDI

MIDI, (Musical Instruments Digital Interface), fu desarrollado en 1983 por un consorcio de


fabricantes de sintetizadores -Yamaha, Roland, Kawaii y Sequential Circuits - , y es un
mtodo para comunicar datos de ejecucin musical a travs de instrumentos electrnicos.

Antes de la creacin del MIDI la mayora de los sintetizadores usaban el flujo de corriente
elctrica para controlar aspectos de la generacin de sonido -altura, volumen inicial de la
nota, duracin, cambio de amplitud y timbre en el tiempo, etc.- Cada fabricante usaba, sin
embargo, diferentes standards elctricos.

MIDI fu la respuesta industrial a un mercado que demandaba compatibilidad de los


instrumentos electrnicos. Usando los extraordinarios avances de la dcada en tecnologa
digital, los instrumentos equipados con MIDI emplean microprocesadores para convertir
acciones de ejecucin (qu tecla se acciona, con que velocidad, qu pedales estn abajo,
qu programa se usa, etc.) en un flujo de datos codificados digitalmente. Los datos digitales
se pasan de un instrumento a otro a travs de una interfaz serial, requiriendo un slo cable
para cada conexin. Por medio de este mtodo una multiplicidad de instrumentos pueden
compartir datos musicales.

Originalmente concebida como una herramienta para la ejecucin "en vivo", la interfaz MIDI
prolifer con sorprendente velocidad. Actualmente pueden encontrarse puertos de
comunicacin MIDI no slo en sintetizadores, sino tambin en consolas, controles de luz,
procesadores de efectos y computadoras personales.

El protocolo de formato y datos de la interfaz MIDI se especifican en un documento editado


por la MMA (MIDI Manufacturers Association) y la JMSC (Japan MIDI Standard Comittee),
cuyo ttulo es MIDI 1. 0 Detailed Specification.

El hardware emplea conectores DIN de 5 pins dispuestos en 180 grados. Los cables de
conexin deben estar limitados a una longitud mxima de 15 metros, tal como se indica en la
1.0 Specification. Los datos se transmiten en serie como un flujo de ceros (paso de corriente)
y unos (ausencia de corriente) a una velocidad de 31,25 Kbaud (31.250 bits por segundo).
Los puertos de entrada se denominan MIDI IN y los de salida MIDI OUT. Opcionalmente
existe un conector adicional denominado MIDI THRU que enva una copia de los datos
ingresados por MIDI IN hacia otros instrumentos, permitiendo encadenarlos en serie. En
algunos instrumentos el MIDI THRU es omitido, de la misma manera que, por no generar
usualmente ningun dato MIDI, los procesadores de efectos carecen de MIDI OUT.
2 - ESTRUCTURA DE LOS DATOS MIDI

En un intercambio tpico de datos MIDI un instrumento transmisor presenta en su puerto


MIDI OUT un comando o mensaje que especifica una accin a ejecutarse ("tocar un do
central mf, por ejemplo) y el instrumento que lo recibe ejecuta el comando, si est dentro de
sus posibilidades (en caso contrario, lo ignora). Cada mensaje MIDI est codificado en una
cadena de datos digitales.

Los datos MIDI se organizan en bytes de 8 bits (o "palabras") precedidos de un start bit
(siempre "0") y seguidas de un stop bit (siempre "1"). Estos ltimos permiten al
microprocesador del instrumento receptor distinguir el final de un byte del comienzo del
siguiente.

Los bytes de datos MIDI se combinan en mensajes, que consisten en un status byte
seguido de uno o varios data bytes. Los status byte definen el tipo de comando que se
transmite (note on, pitch bend, patch change, etc.) y su primer bit es siempre un "1". Los
data bytes indican informacin especfica respecto del comando del status byte (key
velocity, valor del pitch bend, nmero de patch, etc.) y su primer bit es siempre un "0".

Los mensajes MIDI se clasifican en dos grupos: channel messages y system messages.

2.1 - Channel messages

Para posibilitar un control independiente de varias unidades en un sistema los datos MIDI se
pueden asociar a 16 canales. Un instrumento puede ser preparado para recibir datos en un
canal (o canales) especfico y/o ignorar datos en otros canales. El canal MIDI por el que un
instrumento recibe las instrucciones principales se denomina su basic channel.

Como el nombre lo indica, los channel messages contienen informacin que se destina
para un canal de recepcin especfico. Hay dos tipos de channel messages: Voice channel
message y Mode channel message.

Voice channel message : estos constituyen la mayor parte de la informacin MIDI. La


mayora de los casos controlan la circuitera interna de generacin de sonido, definiendo
cundo y cmo ha de tocarse una nota. Pueden usarse para otros propsitos tambin: los
mensajes de Note On pueden disparar sonidos de percusin en mquinas de ritmo, controlar
luces en un escenario o faders en una consola de mezcla.

Mode channel message : definen la respuesta de los instrumentos a los mensajes


anteriores y deben ser enviados a travs del basic channel del instrumento que los recibir.
Existen cuatro modos: 1)Tambin llamado Omni on / Poly (responde a todos los canales y
ejecuta polifnicamente); 2)Llamado Omni on / Mono (responde a todos los canales y
ejecuta mondicamente); 3)Llamado Omni off / Poly (responde slo a su canal asignado y
ejecuta polifnicamente) y 4)Llamado Omni off / Mono (responde slo a su canal asignado y
ejecuta mondicamente).

2.1 - System messages

En vez de ser codificados por canal, los system messages se dirigen o bien a todos los
instrumentos de un sistema, o bien a algn sintetizador de una marca especfica. Estos
mensajes son de tres tipos: System Common, System Real Time y System Exclusive.
System Common : se dirigen a todos los instrumentos de un sistema, sin importar el canal
MIDI. Generalmente usados con secuenciadores y mquinas de ritmo, estos mensajes
llevan informacin tal como: la cancin a ejecutar, en qu punto debe comenzarse y datos
de MIDI time code.

System Real Time : llevan referencia temporal a equipos MIDI (una mquina de ritmo, por
ejemplo) que utiliza un reloj de sincronizacin. Por ejemplo, el Timming Clock message
provee un pulso de reloj a una frecuencia de 24 pulsos por negra. Otros mensajes son
comandos Start, Stop y Continue para playback de secuenciadores.

System Exclusive : tienen formatos especiales para cada marca y modelo de equipo MIDI y
se usan para transmitir datos (como valores de parmetros en un patch, memoria de
sampleo o datos de archivo de un secuenciador) slo aplicables a un instrumento en
particular. Estos mensajes usan en su Status Byte un nmero que identifica al fabricante.
Cada compaa programa a sus instrumentos para reconocer slo sus nmeros de
identificacin.

3 - CONTROL DE INSTRUMENTOS MUSICALES

MIDI fu originalmente desarrollado para la ejecucin en vivo. Una de sus principales


ventajas es que varios generadores de sonido pueden ser ejecutados por un slo teclado. El
teclado controlador se denomina master y las unidades controladas, slaves.

Una configuracin tpica se muestra en la figura. El MIDI OUT del master se conecta con el
MIDI IN del primer slave y el MIDI THRU de ste ltimo se conecta al IN del segundo slave.
De esta manera los datos de ejecucin del master pasan al slave 1 y son retransmitidos al
slave 2. Controlando los canales MIDI y otras disposiciones de los instrumentos puede
lograrse una gran variedad de combinaciones de "solos" y "duplicaciones". Los slaves
pueden no tener teclado y, en este caso se denominan mdulos. Otras configuraciones ms
complejas son posibles combinando ms instrumentos, o por medio de procesadores de
datos MIDI y/o Computadoras Personales.

3.1 - Controladores

Para imitar la variedad de matices sonoros de los instrumentos tradicionales, los


instrumentos digitales proveen mecanismos de control que se pueden asignar a variaciones
de parmetros programados en sus patchs y controlar por MIDI. La MIDI 1.0 Specification
provee un protocolo aplicable a los controladores. Los datos para los controladores se
transmiten como Channel Voice Control Change messages y se integran de dos data
bytes (nmero del controlador y valor del controlador) precedidos por un status byte. El
nmero de controlador vara de 0 a 127 y ha sido asignado por acuerdo en la MIDI 1.0
Specification. Algunos de los controladores son: Modulation wheel(1), Breath controler((2),
Foot controler(4), Damper pedal(64), etc.

4 - CONTROL MIDI POR COMPUTADORA

Con el desarrollo de las Computadoras Personales (PC) se disearon tambin interfaces


MIDI que posibilitaron su comunicacin con equipo MIDI de produccin y procesamiento de
sonido. Paralelamente se desarroll software aplicable a varias funciones de procesamiento
de datos MIDI. La ventaja del uso de las PC reside en su mayor versatilidad para el manejo
de datos, la conexin con diversos programas musicales (por ejemplo, grfica musical, o
composicin asistida) y la capacidad de almacenamiento de datos.

La comunicacin con la computadora se realiza por va de una interfaz MIDI, que debe
instalarse en la misma. El procedimiento de instalacin incluye la instalacin fsica (insercin
de la placa MIDI en uno de los slots de la computadora y seleccin, mediante la disposicin
de los jumpers especiales, del puerto en serie -COM- a utilizar) y el reconocimiento de la
interfaz/puerto de comunicaciones por parte del software a utilizar. En los dos casos es
imprescindible referirse al manual tcnico correspondiente a la interfaz y a los manuales del
software.

Tpicamente las interfaces MIDI para PC tienen dos conectores MIDI (IN/OUT), existen
algunas con MIDI THRU o un doble MIDI OUT, etc. Puede lograrse un efecto de MIDI THRU
por va del llamado MIDI ECHO, que consiste en que los datos ingresados por IN son
tambin retransmitidos por el OUT. El software de instalacin de la interfaz y/o el software a
utilizar generalmente permiten habilitar el MIDI ECHO.

Opcionalmente, algunos modelos de interfaz poseen una salida de audio para un pulso de
metrnomo y dos conectores para enviar y recibir seales de sincronizacin (sync in / sync
out).

La figura siguiente muestra una configuracin tpica de conexin de equipo MIDI con una PC.
Como se observa, el master keyboard (teclado maestro, Kawai K4) est conectado MIDI
IN/MIDI OUT con la interfaz de la PC. A su vez, el MIDI THRU del K4 est conectado al MIDI
IN del slave (mdulo Kawai K5). De esta manera, los datos de ejecucin "en vivo" del
teclado pueden enviarse a la PC y ser retransmitidos por esta por su MIDI OUT (en virtud del
MIDI ECHO, habilitado a tal efecto), volver a ingresar en el K4 por su MIDI IN y salir a su vez
por su MIDI THRU para ingresar por MIDI IN al K5 (el puerto de MIDI THRU no transmite
datos locales). A su vez, pueden enviarse datos MIDI directamente desde la PC al K4 (MIDI
OUT de la PC a MIDI IN del k4) y una copia de estos datos es retransmitida desde el
K4(MIDI THRU) al K5(MIDI IN).
4.1 - Software

El software desarrollado para MIDI se puede clasificar en dos grupos: 1)Secuenciadores,


2)Librarians y/o Editores. Existe adems software de aplicacin musical que no trabaja
necesariamente con datos MIDI, pero pueden convertirse en datos MIDI para su posterior
transmisin, ejecucin y/o procesamiento, tal es el caso de los programas de grfica musical.
Algunos programas renen todas las funciones enumeradas (secuenciacin, edicin y
grfica musical).

Finalmente debe mencionarse el caso de los programas de Composicin Algortmica y los


Entornos de Improvisacin.

Se mencionarn algunas caractersticas generales de los tipos de software enumerados.

Secuenciadores: permiten el ingreso, edicin, envo y almacenamiento en disco de datos


MIDI de ejecucin (ejecucin de notas con sus valores de duracin, key velocity,
movimientos y valores de controladores, etc.). Estos datos son codificados como eventos
MIDI constituyendo secuencias que pueden ser editadas, almacenadas en disco y
retransmitidas a hardware MIDI. Actualmente existen secuenciadores muy poderosos con un
alto grado de complejidad en sus funciones de recepcin, envo y edicin de datos. Un
estudio detallado de alguno de ellos escapa a los fines de este apunte y debe referirse al
manual correspondiente.

Es importante sealar algunas caractersticas de los archivos que producen los


secuenciadores para ser grabados en disco. En principio estos programas producen
archivos con un formato que les es propio (esto es, no pueden ser procesados por otros
programas, a menos que un usuario muy experto domine el formato propio). Existe, sin
embargo, un formato standard de archivos MIDI denominado Midifile (se describe en el
Standard MIDI Files 1.0 specification). Algunos secuenciadores tienen la opcin de usar su
propio formato o bien usar el formato de un Midifile (tpicamente con la extensin ".mid"), de
manera tal que los archivos producidos con un programa pueden ser tomados por otro (por
ejemplo, un programa de grfica musical) y reprocesarse los datos de otra manera (convertir
datos MIDI en una partitura musical, siguiendo el ejemplo anterior). Tambin existen
secuenciadores que proveen un formato de archivo ASCII y subprogramas que lo convierten
a su propio formato.
Librarians y/o Editores: permiten el ingreso, edicin, envo y almacenamiento en disco de
datos MIDI de sistema exclusivo. Se usan bsicamente para modificar, almacenar en
memoria y enviar Patchs y Multipatchs de sintetizadores y/o mdulos y/o Samplers. Los
Librarians permiten guardar los datos en archivos y retransmitirlos, pero no modificarlos; los
editores, adems de esto, trabajan en tiempo real con los datos de sistema exclusivo,
permitiendo editar patchs y multipatchs. Las ventajas de estos ltimos son, obviamente, la
comodidad en la edicin usando el monitor de la PC (que permite visualizar todos los datos
al mismo tiempo), el uso del mouse, la utilizacin de grficos analgicos (por ejemplo, de las
envolventes), etc. Estos programas necesitan los datos de sistema exclusivo de cada marca
de equipo para poder funcionar, por lo que usan pequeos archivos llamados drivers para
guardarlos y consultarlos.

BIBLIOGRAFIA RECOMENDADA

1-Dos enfoques muy completos sobre MIDI:

R. A. Penfold MIDI avanzado

Edicin: RA-MA, Madrid, 1992

Sergi Jorda Puig Audio Digital y MIDI

Anaya Multimedia, Madrid, 1997

2-Para quienes quieran profundizar en MIDI desde el punto de vista de la programacin y


posean o estn dispuestos a desarrollar conocimientos del lenguaje C:

Charte, F. Programacin Multimedia para Windows, Anaya, Madrid, 1994

Jim Conger MIDI Sequencing in C

M&T Pub., Inc., Redwood City, CA, 1989

3-Una pequea referencia general de lectura rpida, realizada de manera clara y concisa:

Jorge Farall MIDI, Sintes, Samplers... y algo ms

Ricordi Americana, Buenos Aires, 1993

RESUMEN SOBRE MENSAJES MIDI

CHANNEL MESSAGES

Voice

note off

note on

key aftertouch
control change

program change

channel after touch

pitch change

mode

local control

all note off

omni off

omni on

mono on (poly off)

poly on (mono off)

SYSTEM MESSAGES

common

midi time code

song posicion pointer

song selector

tunning request

end exclusive

realtime

clock

start

continue

stop

wait

system reset

exclusive

You might also like