Nociones básicas: el lenguaje MIDI
MIDI (Musical
Instruments Digital Interface) es el
lenguaje que utilizan actualmente muchos
instrumentos para comunicarse entre ellos, enviar y recibir datos y
sincronizarse. Nació dentro del mundo de los
sintetizadores como respuesta a una necesidad de los músicos: controlar
varios equipos con sus dos manos y hacer capas de varios sonidos entre
ellos. Los primeros resultados de esta nueva tecnología se mostraron en
el North American Music Manufacturers Show
de 1983 en Los Ángeles. La demostración consistió en dos
sintetizadores de distintos fabricantes conectados por MIDI con un par
de cables; el
representante de una de esas dos compañías tocó uno de los
sintetizadores... ¡y el público se alborotó entre muecas de asombro al
ver como los teclados sonaban juntos!
Al igual que dos ordenadores pueden conectarse por módem, dos
instrumentos que soporten el protocolo MIDI pueden comunicarse. La
información MIDI tiene un carácter netamente musical: se refiere a comandos
play-stop, activación de nota, tempo, volumen, etc, aunque su uso
avanzado permite muchas mas posibilidades.
En este punto vale la pena hacer una aclaración para los más novatos. Uno
de los mitos más recurrentes entre los no iniciados es que el
MIDI es algo material, un formato de sonido en sí mismo. Eso ha llevado
a las tópicas y erróneas expresiones "escucha este MIDI que acabo de
hacer", "estoy buscando el MIDI de esta canción", y el más inocente de
todos ellos, "quiero pasar este WAV a MIDI". Todos estos conceptos se
basan en una mala comprensión del MIDI. El MIDI es un protocolo de
comunicación, un conjunto de comandos que circulan entre dispositivos
MIDI dando órdenes a los mismos respecto a lo que deben hacer. Lo que
suena son los aparatos, no "el MIDI" que, además, tiene otras funciones
aparte de controlar la ejecución de sonidos. Cuando alguien pregunta
"cómo pasar de WAV a MIDI", está en la misma situación que aquel que
tiene una foto digital (un JPG por ejemplo) de un texto y quiere que esa
foto se convierta en formato TXT para usarlo en un procesador de textos.
Así como el WAV y el JPG son "fotos" digitales de una realidad material
(el sonido y la imagen), el MIDI y el TXT son lenguajes que indican a
ciertos dispositivos qué deben hacer. En el caso de un sintetizador, el
MIDI le dice qué notas deben sonar, a qué volúmenes, etc; y en el caso
de un procesador de textos, el TXT le dice qué caracteres deben
presentarse, en qué formato... Es cierto que existen las tecnologías OCR
para leer caracteres a partir de una foto, pero esta técnica está
implementada en el audio digital con menos fortuna. Existen programas
que pueden identificar tonos a partir de un wav y construir mensajes
MIDI a partir de ellos, pero normalmente solo funciona con WAVs
monofónicos y no muy complejos.
Volviendo al tema que nos ocupa, conviene hablar un poco del
funcionamiento interno de este lenguaje para entender cómo se comporta. La base de la comunicación MIDI es el
byte (una unidad de información digital). Cada comando MIDI
tiene una secuencia de bytes específica. El primer byte es el byte de
estado (status byte), que le dice al dispositivo MIDI qué función
activar. Codificado en ese byte de estado va el canal MIDI. El MIDI
opera en 16 canales diferentes, numerados del 0 al 15. Las unidades MIDI
aceptarán o ignorarán un byte de estado dependiendo de en qué canal
estén configuradas para recibir datos. Sólo este byte de estado tiene
codificado el número de canal, ya que los demás bytes de la cadena se
asume que circulan en el canal indicado por el byte de estado.
Algunas de las funciones que puede activar el byte de estado son estas:
Note On, Note Off, System Exclusive (SysEx), Patch Change, y otras. Así
pues, dependiendo del byte de estado, le seguirán un numero diferente de
bytes. Por ejemplo, el estado Note On le dice al dispositivo MIDI que
empiece a hacer sonar una nota. Así pues, se requerirán dos bytes
adicionales al de estado; uno que indique el tono de la nota (pitch byte)
y otro que marque la velocidad de la misma (velocity byte). Este último
byte de velocidad es el que determina con que fuerza ha sido pulsada esa
nota. Aunque no todos los dispositivos MIDI aceptan el byte de velocidad
-especialmente los aparatos antiguos o algunos modernos de gama baja-,
sigue siendo un byte requerido para completar la cadena.
Y ¿para qué citamos aquí todo este farragoso sistema de datos?
Es importante hacer notar ahora una limitación del lenguaje MIDI, y es su
transmisión en serie. Por un cable MIDI discurren todos esos bytes
que hemos citado... pero uno detrás de otro, no todos a la vez. Esto
tiene implicaciones prácticas: por ejemplo, si tenemos un teclado
controlador conectado a un sampler y estamos enviando datos MIDI al
sampler desde el teclado, al pulsar un acorde de varias notas no
llegarán todas juntas al sampler, sino una detrás de otra. El proceso se
hace a gran velocidad y no hay retardos audibles en este ejemplo, pero
en una cadena interconectada de dispositivos MIDI sí podrían surgir
problemas, como indicaremos a continuación. Por todo esto, es importante
tener una idea de lo que realmente transmiten los datos MIDI: qué bytes
y en qué orden.
Conexiones y cadenas MIDI
Seguramente ya estás familiarizado con esas conexiones de 5 pines de tus
teclados o aparatos MIDI, etiquetadas como IN, OUT y THRU.
Alrededor de estos tres conectores girará todo nuestro sistema MIDI.
Por los puertos MIDI IN de un aparato se recibirán todos los
mensajes MIDI y por el MIDI OUT cada aparato enviará los suyos.
La conexión MIDI THRU es algo que desconcierta a los más novatos,
pero no tiene ningún misterio y es de gran utilidad para configurar una
cadena. Lo que hace el MIDI THRU es copiar los datos que se reciben por
el MIDI IN de ese aparato y enviarlos de nuevo hacia fuera. Aunque del
MIDI THRU salgan datos MIDI, no debe confundirse con el MIDI OUT; de
este último salen solamente los datos enviados por el mismo aparato,
mientras que del THRU sale la copia de los datos recibidos por el
aparato en su MIDI IN.
¿Cuál es la utilidad de este MIDI THRU? Básicamente, enlazar unos
aparatos con otros en una cadena, de manera que todos respondan a una
fuente de datos MIDI inicial. Como ejemplo práctico, si tenemos un
secuenciador MIDI del que nacen todos nuestros mensajes de control y
queremos enviarlos a 2 aparatos distintos, tendríamos que establecer la
siguiente cadena:

En nuestro esquema, el secuenciador envía sus datos MIDI por la salida
MIDI OUT (A); estos datos son recibidos por el sintetizador a traves de
su MIDI IN (B), y reenviados por el MIDI THRU (C) hacia el sampler, que
los recibe, lógicamente, por su MIDI IN (D). Así pues, los datos del
secuenciador estarían siendo recibidos por los dos aparatos, ya que el
primero (sintetizador) los recibe directamente por su MIDI IN, y al
mismo tiempo los copia y los reenvía por su MIDI THRU hacia el sampler.
Como ya habrás imaginado, podríamos seguir conectando dispositivos MIDI
en esta cadena, simplemente enlazándolos con el MIDI THRU. Por ejemplo
si queremos añadir otro sintetizador, podríamos enviar el MIDI THRU del
sampler hacia su MIDI IN. De todos modos, por la cuestión antes
mencionada de que el MIDI se transmite en serie, no conviene
enlazar una cadena demasiado larga por MIDI THRU, ya que el último
aparato de esta cadena podría sufrir retardos al recibir los mensajes.
Por esta razón, muchos secuenciadores tienen varias salidas MIDI,
para poder enviar los mismos datos en distintas series a diferentes
aparatos sin utilizar las conexiones THRU, o al menos reduciéndolas. Por
ejemplo, si nuestro secuenciador tuviese dos MIDI OUT, el esquema
anterior no necesitaría el uso de la cadena THRU: simplemente
conectariamos el sintetizador y el sampler a cada una de esas dos
salidas, y ambos recibirían los datos del secuenciador al mismo tiempo.
Mensajes MIDI: teoría
Ya sabemos que gracias al MIDI podemos
controlar varios equipos, establecer relaciones entre ellos y
sincronizarlos. Imaginando que nuestros aparatos MIDI son los
componentes de una tropa de soldados, y nosotros los capitanes, lo más
importante ahora será conocer qué ordenes podemos enviar para que
cumplan su misión. Al igual que una tropa obediente, nuestro equipo de
dispositivos MIDI funcionará correctamente si sabemos qué mensajes
enviarles y si estos son correctos.
De esta manera, nos encontramos con las siguientes categorías de
mensajes que podemos enviar:
Mensajes de canal
Se llaman así porque actúan solamente en el canal
que se determine. Son de dos tipos:
· Mensajes de voz: Se basan en la interpretación; por
ejemplo: Note on (activación de una nota), Note off
(desactivación), Program Change (cambio de timbre) o
Control Change (cambio de controlador, también llamado CC;
estos se enumeran de 0 a 127, y algunos están determinados como
estándar, p.e: el CC 7 es el control de volumen y el CC 10 es el
pan)
· Mensajes de modo: Indican a un sintetizador como debe
distribuir las voces internas; básicamente son estos: Omni on/off
(si se reciben mensajes por todos los canales -on- o solo por
uno predeterminado -off-) y Mono on/off (indica si cada
canal tocará solo una nota -on-, o será polifónico -off-)
Mensajes de sistema
No afectan solo a un canal, sino a todo el sistema, y son
de tres tipos:
·
Mensajes comunes: por ejemplo, los de afinación general de un
sintetizador.
· Mensajes de tiempo real: pensados para secuenciadores (start-stop,
mensajes de reloj, etc)
· Mensajes SysEx: su nombre deriva de "sistema exclusivo".
Sirven para que diferentes dispositivos de la misma marca y modelo
intercambien información (por ejemplo, acerca de sonidos,
síntesis, efectos,
etc.). Cada dispositivo MIDI suele traer funciones propias, no
generales a todos los demás dispositivos, y por ello son
necesarios estos mensajes, que son "exclusivos" de esa marca y
modelo.
Mensajes MIDI: práctica
Todo esto está muy bien, pero ¿lo necesito para
mi trabajo práctico? Descartando los tipos de mensajes más elementales y
de menor importancia (por ejemplo, no hace falta pararse demasiado sobre
los evidentes usos del Note on-off o la afinación), la respuesta es sí:
por eso nos centraremos ahora en aquellos que es necesario dominar para
controlar nuestros equipos con precisión.
· Cambio de banco y programa: Tenemos un sintetizador o sampler
repleto de sonidos interesantes, pero ¿cómo acceder a ellos desde el
exterior, p.e. desde un secuenciador u otro teclado? La respuesta nos la
dan estos dos mensajes: Bank Change y Patch Change. Son
los que indicarán al dispositivo MIDI qué timbre debe sonar por cada
canal (recordemos que son mensajes de canal y sólo afectarán al canal
que determinemos).
-Patch Change: Como en el resto del protocolo
MIDI, disponemos de la numeración 0 a 127 para escoger cualquier sonido
de una fuente externa. Si tuvieramos un sintetizador con 32 memorias
para patches (por ejemplo, el clásico Yamaha DX7), para escuchar el
sonido número 20 mandaríamos un mensaje Patch Change 19 (no el 20,
porque el 0 ya cuenta como primer número). Pero claro, esto nos
limitaría a escoger 128 sonidos, cuandos los aparatos actuales pueden
contener muchos más. Es por ello que estos aparatos ordenan sus sonidos
en distintas series de 128 sonidos, llamadas "bancos". Así pues, un
sintetizador con 512 patches tendría que dividirlos en 4 bancos de 128.
-Bank Change: Este es el mensaje que nos da
definitivamente un acceso total a los patches de un dispositivo con mas
de 128 sonidos. Siguiendo con nuestro ejemplo de un sintetizador que
tenga 512 sonidos, organizados en 4 bancos: si quisiéramos seleccionar
el sonido 138, o para entendernos mejor, el décimo sonido del segundo
banco, tendríamos que mandar un mensaje de Bank Change 1 y a
continuación, un Patch Change 9. Date cuenta de que ésta es una explicación simplificada; la mayoria de los sintetizadores tienen números específicos para designar sus bancos; por ejemplo, el banco A de un sinte podría requerir un Bank Change 64 u otro, no tendría por qué ser el 0. Lo hemos explicado así para hacerlo de una manera más gráfica. Para saber qué mensajes de banco debes enviar a tu sinte, consulta en su manual.
· Controladores: los mensajes CC (Control Change) nos dan acceso a un montón de
funciones importantes que afectan a cada canal. Podemos mandar -lo
adivinaste- 128 mensajes CC distintos, y a cada uno asignarle un valor.
Por ejemplo, un mensaje CC 7 (volumen) con valor 120 subirá el volumen
de ese canal a 120. Un mensaje CC 10 (pan) con valor 80, colocará la
panoramización de ese canal ligeramente a la derecha, dado que 64 se
considera el centro.
Algunos CC han sido estandarizados, y tienen la misma función en
cualquier dispositivo MIDI que te encuentres. El resto no tienen ninguna
función asignada en principio, de modo que cada fabricante puede dársela
a su gusto. Para saber a qué mensajes CC responde tu dispositivo,
tendrás que consultar su tabla de implementación MIDI. Por lo pronto, nosotros te ofrecemos aqui nuestra tabla de mensajes de control MIDI.
· SysEx: Dado que estos mensajes dependen de cada fabricante, no
vamos a citar ninguno en concreto aquí porque, por ejemplo, un mensaje
SysEx que variase la profundidad del efecto "chorus" en un Roland no
valdría para un Yamaha. Pero sí los destacamos porque son los que
permiten acceder a las "tripas" de tus dispositivos.
Los SysEx asustan a todo el mundo, y realmente tienen cierta complejidad,
pero si se dominan abren un mundo nuevo de control total sobre tus
máquinas. Aquí te animamos a curiosear e investigar acerca de los SysEx,
pero no es el objeto de este artículo profundizar sobre ellos.
Equipo MIDI básico
Sin duda, los dispositivos MIDI más tradicionales son los
sintetizadores.
El MIDI se diseñó para comunicarlos entre sí, y esa función desde luego
sigue vigente. El MIDI te permite utilizar varios teclados o módulos de
sonido a la vez; de esta manera puedes hacer que un sonido de un sinte
sea reforzado por el sonido de otro, o simplemente hacer arreglos
polifónicos y multitímbricos con varias máquinas sincronizadas.
Hay que aclarar aquí la típica confusión de
principiante entre sintetizador y teclado. El sintetizador (o
sampler, dado el caso) es el generador de sonido, y el teclado simplemente envía
mensajes MIDI indicando qué notas deben tocarse y con qué fuerza. Como
la mayoría de sintetizadores llevan teclado incluido, mucha gente cree que son inseparables.
Pero no es así; hay sintetizadores sin teclado (los llamados "módulos de
sonido") y teclados sin sintetizador. Estos últimos son los teclados
maestros.
Con la simplificación de los estudios caseros actuales, mucha
gente utiliza los llamados teclados maestros o controladores, que no
incorporan ningún sonido. Simplemente envían datos MIDI para controlar a
otros aparatos (por ejemplo, sintes virtuales). Esto abarata su precio y
hace que la producción musical sea más accesible a todos, si bien los
teclados maestros de gama alta pueden ser muy caros. Algunos
fabricantes famosos son FATAR (su modelo
SL-161 en la foto de abajo), Oberheim, Midiman,
Roland o Yamaha.

El centro de una instalación MIDI es el secuenciador, que centraliza la grabación y
reproducción de todos los mensajes MIDI, su edición y sincronización. Lo
normal es que esté basado en un programa de ordenador, dado que los
ordenadores ofrecen mayor potencia que cualquier sistema
de secuenciación hardware, y muestran sus datos en monitores de gran
tamaño que facilitan las tareas. Sin embargo, para actuar en
directo muchos prefieren la seguridad de los secuenciadores hardware; algunos ejemplos clásicos de estos aparatos son
el Alesis MMT-8 (foto izquierda) o el Roland MC-50.
También se utilizan los viejos ordenadores Atari y Amiga
para este fin.
Los secuenciadores software más famosos son sin duda Logic
(foto abajo),
Cubase y Cakewalk (o su reciente actualización, SONAR). Cakewalk es el
más extendido en América, y los otros dos son líderes en el mercado
europeo. Cualquiera de ellos es altamente capaz, destacando
especialmente Logic por su environment configurable. Otros
programas famosos son el Digital Performer de MOTU o la saga
Orchestrator de Voyetra; ciertos editores de partituras como Finale
tienen funcionalidades de secuenciador MIDI, así como algunos sistemas
multipista de audio como Pro Tools o Nuendo. Todos ellos manejan un gran
número de pistas a la vez, así que esto no será un límite.

Una primera idea para conectar varios equipos entre ellos es la cadena THRU, ya explicada en la primera parte de este tutorial. Sin embargo, si tienes muchos equipos, se producirá latencia en los últimos dispositivos de la cadena.
La solución a esto es utilizar un interface MIDI dotado de
varios puertos de salida y no de uno sólo. Esto evita las cadenas THRU,
o al menos las minimiza: si tu interface MIDI tiene cuatro salidas,
puedes dominar cuatro dispositivos directamente, y todos los mensajes
les llegarán a un mismo tiempo. Como hemos dicho, el protocolo MIDI
funciona de una manera serial, pero esto es así por cada puerto; es
decir, si disponemos de varios puertos, actuarán de manera separada, sin
acumular sus datos unos a otros. Existen muchos interfaces de este tipo
en el mercado; algunas marcas fabricantes son Midiman (a la izquierda,
su Midisport 2x2), Egosys, MOTU,
Steinberg y Emagic. Todas ellas ofrecen diversos modelos dependiendo de
sus salidas y entradas MIDI. También algunas tarjetas de sonido
incorporan dos o más puertos MIDI de entrada y salida, pero es raro y lo
normal es que solo lleven uno o ninguno.Para gestionar las librerías de sonidos de tus sintetizadores y editar sus patches vía MIDI existen también soluciones software muy útiles, que evitarán en muchas ocasiones el enfrentamiento con esos pequeños displays de tus máquinas. ¿Cuántos se han atrevido a editar los sonidos un DX7 desde el frontal de la máquina? Utilizando estos programas podrás hacer esas tareas de manera remota, aprovechándote de la capacidad de almacenamiento y organización de tu ordenador y una mayor claridad y comodidad gracias a la pantalla grande. Sound Diver de Emagic y SoundQuest son dos ejemplos de gestores-editores totales, que incluyen plantillas para un amplio número de aparatos, pero hay también una multitud de editores más sencillos, que sólo se ocupan de una máquina concreta. La mayoría de estos últimos son gratuitos; busca por la red el que corresponda a tu sintetizador.
Domina tu equipo virtual
Con la implantación cada vez mayor de los
sintetizadores y samplers virtuales, muchos usuarios han empezado a
demandar un control más manual sobre ellos. El ratón no parece convencer
a la hora de controlar con precisión estos programas, y es por ello que
los fabricantes han dado una alternativa: los controladores MIDI
externos. Estos dispositivos adoptan la forma de mesas o consolas con
faders o knobs configurables, y se limitan a enviar datos MIDI como CCs
o sysex, que controlan las funciones del software. Así como para tocar
un sintetizador virtual necesitarás un teclado maestro que le envíe
mensajes MIDI, para controlarlo como si fuera hardware, con botones,
deslizadores y demás, necesitarás una de estas máquinas. Su principal
ventaja es que no se limitan a un solo sintetizador virtual; al utilizar
el protocolo universal MIDI, pueden dominar cualquier dispositivo
software que siga estas especificaciones. Esto incluye, por supuesto, a
las máquinas hardware que admitan su control a partir de mensajes CC o
sysex externos.
La oferta de controladores va en aumento, y desde el ya
clásico Keyfax Phatboy (foto izquierda) han aparecido muchos otros, como el Doepfer
Pocket, Native Instruments 4Control, Phillip Rees C16 o ya a un nivel
más ambicioso, el Kenton Control Freak, Peavey 1600 o Doepfer Drehbank.
Flautas, guitarras... y otras rarezas MIDI
Se han fabricado toda una diversidad de aparatos MIDI muy "especiales",
sobre todo en lo referente a controladores. El hecho de que el MIDI sea
un protocolo estándar, universal, hace que cualquier dispositivo
compatible pueda integrarse en la cadena, y las posibilidades son
múltiples.
Por ejemplo, Yamaha ofrece su controlador de viento WX5 (a la
izquierda), que es una especie de saxofón-flauta que envía datos MIDI
basándose en el soplido. Hay módulos de sonido especiales para este
controlador, como el Yamaha VL-70m, que imita los timbres de viento
reales mediante modelado físico. Pero como el WX5 es MIDI, puede
controlar cualquier cosa... podrías tocar un violín o unas marimbas
usando este curioso aparato.
Los guitarreros también tienen sus propios dispositivos MIDI.
Acoplando una pastilla MIDI a tu guitarra puedes convertir su señal en
datos MIDI que podrán controlar un sintetizador de guitarra (como el
Roland GR-30 o 50)... o lo que tú quieras.
El mundo de los controladores MIDI se ha ido convirtiendo en
toda una caja de sorpresas, y cada vez nos topamos con máquinas mŽsa
innovadoras y originales. Si te gustaron las arpas láser de Jarre,
Roland te ofrece sus sistemas D-Beam en muchos de sus teclados y
sintetizadores; se trata de un rayo que, al ser interrumpido a
diferentes alturas y ángulos, genera diferentes mensajes MIDI que
modifican el sonido.






manolomagato
Tengo un M-Audio Oxygen 61 (controlador MIDI) conectado a un PC (AMD Athlon 64 3200+, 1 GB de Ram), y resulta que hay un desfase al momento de pulsar cualquier tecla del teclado respecto a lo que suena, debe ser un desfase de como 1/4 de segundo, pero de todos modos es molesto y no sé a qué se deba. Por vuestra colaboración, muchas gracias
lisboetas
latencia
quique300
latencia eso puedes vrlo desde el mismo progrma que usas ooo desde tu tarjeta de sonido o tu interface en este caso ooooo instala el ASIO driver te mejorar la latencia
quique300
que DIMER MIDI me recomiendan para el manejo de luces
mile (no registrado)
hola tengo una tarjeta delta1010lt y un teclado korg x5d, y uso el sonar como programa, como puedo conectarlo y que me funcione el MIDI.gracias espero tu respuesta.
HispaSonic
Para consultas tan específicas, mile, utiliza mejor nuestros foros (entra en "comunidad").
drewok
Impecable Xabier, hace un cuarto de hora no sabía nada de los midis y ahora soy capaz de mantener una conversación (a nivel básico se entiende) sobre el tema. La exposición es clara, con los tecnicismos justos y con una redacción ligera y amena.
Excelente trabajo
fer_loren
Muchas Gracias por dedicar tu tiempo a los que aún no sabemos...
¡Veo una luz en formato MIDI!