MIDI

 

Musical Instrument Digital Interface

La forma más simple de entender el MIDI es viendo estas fotos:

 

La pianola es básicamente un piano que toca automáticamente "leyendo" la música de un rollo de papel con perforaciones, dependiendo de la longitud horizontal de las perforaciones dependerá la duración de las notas, y de su altura vertical depende la nota que se hará sonar. Un mecanismo parecido y aún mas simple es el que tiene una "cajita de musica" de cuerda. Si tienes la oportunidad de ver una trabajando te será mucho más claro. Así pues, un archivo (o secuencia) MIDI es exactamente lo mismo que el rollo de la pianola: un código que le dice a un instrumento que notas y con que duración debe tocar.

Un concepto importante: EL MIDI NO ES AUDIO!! es simplemente el código, el audio lo va a producir el instrumento. El codigo MIDI no va a producir ningun sonido si no tiene un instrumento a quien dar ordenes!

En nuestro caso los instrumentos son sintetizadores, los hay en muchas presentaciones, módulos, cajas de ritmo, chips en tarjetas de computadora, samplers y mas recientemente existen sintetizadores virtuales (de software) como los VST instruments de cubase. Asi pues: SI NO HAY SINTETIZADOR, NO HAY SONIDO!!

Nuestro "rollo de papel" es un archivo MIDI (midi file o *.mid) que se guarda en diskettes o en el disco duro de una computadora, el tamaño de un archivo MIDI es diminuto (típicamente es 7000 veces menor que su equivalente en audio).
El mecanismo que se encarga de leer este archivo y pasarle las ordenes al sintetizador se llama secuenciador MIDI.

Un secuenciador te permite editar (hacer cambios) a los archivos MIDI, tambien te permite grabar tus propios archivos, y cada nota lleva mucha más información que simplemente duración y altura (también volumen, paneo, tipo de sonido que el sintetizador producirá, efectos etc.)

 

 

Puertos MIDI

Los puertos MIDI son los sockets DIN-5 (enchufes de cinco patas) instalados generalmente en la parte traserea de los dispositivos MIDI, estos puertos permiten comunicar por medio de cables MIDI a dos o más dispositivos para poder intercambiar todo tipo de información y mensajes entre ellos. Los puertos más comúnes son: MIDI OUT, MIDI IN y MIDI THRU (siendo estos tres puertos más importantes) aunque algunos ofrecen solamente uno o dos de estos puertos dependiendo de las funciones del dispositivo. Algunos dispositivos ofrecen también; MIDI OUT /THRU y MIDI MERGE IN.

Un puerto puede ser de salida o de entrada dependiendo si envía o recibe información, a continuación estudiaremos los puertos en detalle.

MIDI OUT (puerto de salida)

Por este puerto sale automática e instantáneamente una copia de la información que está ocurriendo o que se está generando dentro del dispositivo (notas, controladores cambios de programa, secuencias tocando, códigos de sincronía MTC etc.) y también por aquí salen copias de la información almacenada en la memoria.

MIDI IN (puerto de entrada)

Por este puerto ingresa al dispositivo la información generada o enviada desde otro dispositivo externo. La información que entra por el MIDI IN no sale por el MIDI OUT.

Es importante aclarar que aunque un dispositivo reciba información por su MIDI IN esto no significa necesariamente que esta va a ser entendida ni que las órdenes serán obedecidas, por ejemplo, si conectamos un multiefectos y una caja de ritmos y deseamos copiar las secuencias de la caja en la memoria del multiefectos este recibirá la información pero al "darse cuenta" de que la información que recibe no concierne a funciones de multiefectos simplemente niega el acceso e ignora la información recibida. Otro caso de "desobediencia" ocurre cuando un dispositivo receptor está ajustado en un canal diferente al del dispositivo emisor, en este caso el receptor recibe la información pero por venir en un canal distino la ignora.
Hablaremos de los canales más adelante.

MIDI THRU (puerto de salida, permite que la información "atraviese" un dispositivo)

Por este puerto simplemente sale instantánea y automáticamente una copia exacta de todo aquello que llega al puerto MIDI IN sin agregar ni quitar nada. Es importantísimo comprender que aunque el MIDI THRU es un puerto por donde sale información este no da salida a la información que se genera u ocurre dentro del dispositivo (para eso esta el MIDI OUT) sino que solamente refleja lo que esta entrando por el MIDI IN, en otras palabras: si nada entra por el MIDI IN nada sale por el MIDI THRU. Este puerto se usa para conectar dos o más dispositivos receptores a un solo emisor. La palabra "THRU" es una abreviación de THROUGH (a travéz).

MIDI OUT / THRU (puerto de salida)

Este puerto viene siempre acompañado por un pequeño switch que nos permite escojer una función (MIDI OUT o MIDI THRU) y viene generalmente en dispositivos de pequeñas dimensiones.

MIDI MERGE IN (puerto de entrada, mezcla de información)

Este puerto se usa en algunas pedaleras y otros dispositivos en donde es necesario que un receptor reciba y obedezca a la información de dos emisores diferentes.

MIDI SOFT THRU (opción de operación del MIDI OUT)

Este no es un puerto sino una opción de los secuenciadores de software que cambia la forma de operación del puerto MIDI OUT de una computadora. En escencia la opción SOFT THRU convierte al puerto MIDI OUT del secuenciador en MIDI OUT Y MIDI THRU simultaneamente, en otras palabras, la opción SOFT THRU mezcla la información que llega al MIDI IN con la información que sale del secuenciador mismo. Esta opción nos permite escuchar, en un módulo, lo que tocamos en un controlador dedicado al mismo tiempo que escuchamos lo que ya está grabado en el secuenciador.

Cables MIDI

Los cables MIDI llevan la información de un dispositivo a otro conectando un puerto de salida del dispositivo emisor a uno de entrada del dispositivo receptor. Lo mas importante de los cables es comprender que la información viaja siempre en una sola dirección desde un puerto de salida de un dispositivo a uno de entrada de otro dispositivo.

De un puerto MIDI OUT a un puerto MIDI IN
MIDI THRU MIDI IN
MIDI OUT MIDI MERGE IN
MIDI THRU MIDI MERGE IN

Se recomienda usar cables lo más cortos posibles para evitar degradación de información. Vale la pena invertir en cables MIDI de buena calidad.

Dispositivos, MASTER & SLAVE

De ahora en adelante llamaremos al dispositivo emisor el MASTER (amo) y llamaremos SLAVE (esclavo) al dispositivo que recibe por medio de un cable MIDI la información que el MASTER le envía. Un master puede enviar informacíón a más de un slave. Los dispositivos slaves (esclavos) son llamados así por que obedecen a la información (u órdenes) que el master les envía.

Flujo lógico de información
ver diagramas al final de esta pagina

Antes de continuar con las aplicaciones de interconexión entre dispositivos y los canales MIDI haremos un repaso de como ocurre y fluye la información dentro de un dispositivo. Usaremos como modelo un workstation pues como sabemos éste contiene todos los componentes estudiados hasta ahora.

1. Cuando el músico toca una tecla, pide un cambio de programa o mueve un controlador continuo (como el Modulation Wheel o un pedal) se envía esta información en forma de CHANNEL VOICE MESSAGES (CHVM) al módulo (el cual contiene un generador y un multiefectos) por la ruta #1. Un switch llamado LOCAL ON / OFF puede impedir que los CHVM llegen al módulo, sin embargo, la posición OFF solo debe usarse en aplicaciónes especiales que involucre secuenciadores externos.

2. Si el músico pidió desde el controlador un cambio de programa entonces el módulo, por la ruta #2, busca en la memoria los parámetros correspondientes al programa pedido y le da dichos parámetros al generador y al multiefectos para que se ajusten al nuevo programa.

3. El generador recibe los CHVM del controlador por la ruta #1 y los interpreta en forma de sonidos dependiendo del programa previamente cargado en él, y por la ruta #3 envía estos sonídos al multiefectos. El switch POLY / MONO del generador no afecta en nada la operación del dispositivo cuando los CHVM ingresan a el por la ruta #1.

4. El multiefectos recibe los sonidos terminados y les agrega los efectos especificados en el programa previamente cargado en el paso 2. Al terminar el proceso le da salída a los sonídos resultantes por la ruta #4 (salidas de audio).

5. Una copia de los CHVM generados en el paso #1 es automáticamente enviada al MIDI OUT por la ruta #5. Esta copia sale independientemente del switch LOCAL ON / OFF. Cualquier dispositivo SLAVE conectado a este puerto recibirá dichos CHVM.

6. El dispositivo recibe información enviada desde otro dispositivo externo (un MASTER) por el MIDI IN. Si el switch OMNI ON / OFF esta en la posición OMNI ON (ruta #6) le será permitido el acceso a los componentes internos a toda la información que este llegando, sin importar en que canal viene dicha información.

Nuestro workstation de este ejemplo se convierte en un SLAVE en el momento en que le conectamos un dispositivo MASTER externo por el MIDI IN.

7. Por otra parte, si el switch está en la posición OMNI OFF (ruta #7) sólo le será permitido el paso a los componentes internos a aquella información que venga en el canal (o canales) que el músico haya determinado en el selector de canales. La información que venga por otros canales será ignorada. Algunos dispositivos ofrecen en el selector de canales la modalidad BASE CHANNEL (canal base) que permite seleccionar varios canales de recepción simultáneos, más detalles en el capítulo CANALES Y MODOS MIDI.

8. Una vez que le es concedido el paso a la información que llega por el MIDI IN ésta se dirigirá al módulo por la ruta #8. El módulo recibirá entonces los CHVM producidos por un dispositivo MASTER externo y obedecerá a éstos del mismo modo que lo hace con los CHVM que llegan por la ruta #1. En esta ocasión, el switch POLY / MONO del generador va a alterar la forma de interpretar los CHVM provenientes del exterior; si esta en POLY el generaddor se comportará polifónicamente (varias notas simúltaneamente), si esta en MONO se comportará monofónicamente (solo una nota por vez), normalmente este switch debe dejarse en POLY.

9. Una copia exacta de toda la información que llega por el MIDI IN es enviada instantáneamente por la ruta #9 y retransmitida al exterior por el MIDI THRU.

10. Una copia de los CHVM generados en el paso #1 es enviada al secuenciador interno por la ruta #10. Si el secuenciador esta en estado de grabación (REC) este "grabará" los CHVM en uno o varios tracks bajo un nombre y número de canción y guardará los tracks en la memoria por la ruta #11.

11. El secuenciador en estado de grabación (REC) recibe por la ruta #10 los CHVM que produce el controlador, y estos posteriormente son guardados en la memoria (en forma de tracks y bajo un nombre y un número de canción) por la ruta #11. Por otra parte, cuando el músico desea trabajar con una secuencia previamente grabada deberá especificar el nombre o el número de canción deseada y entonces el secuenciador buscará en la memoria los tracks correspondientes a la canción solicitada y cargará toda la secuencia (por la misma ruta #11). Una vez que la canción solicitada se encuentre cargada en el secuenciador todo estará listo para que el músico trabaje con ella, ya sea que la edite (EDIT), que grabe nuevas partes o que simplemente ponga PLAY para escucharla.

12. Cuando el secuenciador esta reproduciendo una canción (PLAY), los tracks de la secuencia son enviados al módulo por la ruta #12. Ahí los CHVM contenidos en los tracks son reconvertidos a sonidos audibles por el generador, se le agregan efectos y finalmente la canción sale por el audio out (ruta #4). Cabe aclarar que el generador multitímbrico del módulo le pide primero a la memoria (por la ruta #2) los programas que corresponden a los instrumentos de cada uno de los tracks que está recibiendo. Recordemos que cada track lleva usualmente la información musical de una parte de la canción y el programa correspondiente al instrumento o sonído que ejecutará dicha parte.

13. Cuando el secuenciador está en PLAY éste envía una copia de los tracks al MIDI OUT por la ruta #13. De este modo es posible hacer que un módulo SLAVE externo reciba los tracks de nuestro secuenciador y los interprete con sus propios sonídos. Esta aplicación se usa generalmente para mejorar la calidad de los sonidos. Supongamos que tenemos un workstation cuyo generador nos proporciona sonidos modestos o poco agradables y que deseamos grabar un demo de una canción previamente trabajada en el secuenciador de nuestro workstation, todo lo que tenemos que hacer es conectar el MIDI OUT de nuestro workstation al MIDI IN de un módulo externo (con sonídos profesionales) y nuestra canción sonará con los programas del módulo externo. El resultado, nuestro demo quedará con mucho mejor calidad que si hubieramos usado los sonídos del generador interno del workstation.

14. No toda la información que se recibe por el MIDI IN le concierne al módulo (ruta #8) sino que también se puede recibir información que concierne exclusivamente al secuenciador, y esta llega por la ruta #14. Por esta ruta es posible grabar en el secuenciador los CHVM producidos por un controlador MASTER externo.

También por aquí se reciben códigos de sincronía (como MTC) que un secuenciador MASTER externo envía para hacer que ambos secuenciadores (el externo y el de nuestro workstation) toquen en sincronía. Otro tipo de código de sincronía (como SEMPTE) se recíbe por aquí para sincronizar la música grabada en una grabadora de cinta con una secuencia. Además un MASTER externo puede enviar órdenes (como SONG REQUEST) para hacer que el secuenciador carge una nueva canción que se encuentra en la memoria.

15. Por la ruta #15 entra aquella información que llega al MIDI IN y que concierne exclusivamente a la memoria. Por esta ruta es posible ingresar a nuestro workstation programas nuevos para nuestro módulo ó secuencias completas previamente hechas en un secuenciador MASTER externo.

16. Una copia de los contenidos de la memoria (programas, secuencias, wavesamples, etc.) puede enviarse al MIDI OUT por la ruta #16. Como ya sabemos, los contenidos de la memoria pueden ser copiados a los medios de memoria externa (como diskettes o cartuchos de escritura) para luego insertarlos a otro dispositivo, sin embargo, la ruta #16 nos permite lograr el mismo objetivo de manera rápida y directa sin tener que depender de los medios de memora externa.


Conexiones básicas
Ver diagramas al final de esta página

Los siguientes ejemplos nos muestran la forma en la que pueden conectarse dos o más dispositivos para realizar el intercambio de información del que hemos venido hablando. Para simplificar los ejemplos supongamos que todos los dipositivos involucrados son workstations, se han omitido las cuestiones de canales MIDI y asumiremos que todos los dispositivos de los siguientes ejemplos tienen su modo de recepción en OMNI ON (ruta #6) es decir, todos los dispositivos dejarán entrar a sus componentes toda la información que les este llegando por su MIDI IN.

MASTER / SLAVE (maestro y esclavo)

Esta es la conexión mas usada en donde un dispositivo A (master) le envía su información por su MIDI OUT a un dispositivo B (slave) el cual recibe por el MIDI IN, así, al tocar música en el master A el slave B responderá ejecutando la misma música pero con los sonídos que tiene el módulo del dispositivo slave B. Si en el master cambiamos de programa el slave también cambiará de programa.

En esta configuración el master puede enviar: los CHVM que están ocurriendo en su controlador o en su secuenciador; una copia de los contenidos de la memoria; y los códigos de sincronía para que el secuenciador del slave se "amarre" al del master.
Por otra parte el slave recibe y obedece a la información que le envía el master pero éste a su vez no puede enviarle ningúna respuesta o información de regreso por el mismo cable.

DAISY CHAIN (cadena de margarita)

En esta configuración el dispositivo A actúa como master general mientras que los dispositivos B, C y D actúan todos como slaves recibiendo y obedeciendo simultaneamente a la información enviada por el master. Esta es una aplicación del MIDI THRU el cual permite hacer llegar la información del master a toda la cadena de dispositivos. Es importante observar que los slaves (B, C y D ) no pueden enviar información a ningún otro dispositivo de la cadena, puede tocarse en ellos pero esto no hace llegar nada a los demás dispositivos. No se recomienda conectar más de tres slaves con esta configuración pues la cantidad de cables midi involucrados pueden degradar ó retardar la llegada de información a un cuarto slave E,

STAR NETWORK (red de estrella)

Esta forma de conectar los dispositivos tiene exactamente el mismo efecto que la DAISY CHAIN. Para lograr esta conexión es necesario tener un accesorio llamado MIDI THRU BOX o un MIDI PATCHBAY. Las ventajas del star network sobre la daisy chain son:

1. Podemos conectar más de tres slaves a un mismo master sin riesgo de degradar o retardar la información.

2. Podemos usar como slaves dispositivos que no cuenten con el puerto MIDI THRU.

3. Es más rápido y fácil cambiar de conexiones especialmente si contamos con un MIDI PATCHBAY.

Supongamos que todos los cables MIDI de estos ejemplos tienen un metro de longitud. Es claro observar como la información del master A al slave D tiene que recorrer tres metros de cable y atravezar a dos dispositivos antes de llegar a su destino en la conexión daisy chain. En cambio en la star network el viaje de información entre A y D es de dos metros. Si agregaramos un slave E a la daisy chain podrian ocurrir problemas de recepción en E pues la información tendría que viajar cuatro metros y atravezar a tres dispositivos, mientras que con star network el recorrido es de sólo dos metros.

MUTI MASTER (varios maestros)

En esta configuración el master A le envía su información al dispositivo B el cual se convierte en el salve de A. Pero a su vez el dispositivo B es el master del slave C. Como se puede ver el dispositivo B es slave y master al mismo tiempo.
La información del master A llega al slave B pero no llega al slave C, pues C es el slave de B. Podemos tocar en A y B responderá a los CHVM que recibe interpretando la música con sus propios sonídos pero C permanece inactivo. Si ahora tocamos en B, el slave C responderá ejecutando la música que estamos tocando en B. La clave de esta configuración radica en que el slave C esta conectado al MIDI OUT del dispositivo B y no al MIDI THRU como en el caso de daisy chain.

MIDI LOOP (circuito cerrado)

En esta conexión el dispositivo A es el master del B, pero a su vez el dispositivo B es el master del A. Esta configuración es especialmente útil cuando el dispositivo A es un keyboard y el dispositivo B es un secuenciador dedicado (o una computadora usada como secuenciador) de tal modo que el controlador del keyboard A es usado para ingresar CHVM al secuenciador B en el estado REC, luego, al poner PLAY en el secuenciador este le envía los CHVM previamente grabados de regreso al módulo del keyboard para obtener los sonidos correspondientes.


Click para agrandar