Curso de Midi
Curso de Midi
Curso de Midi
¿Qué es?
MIDI es un lenguaje digital utilizado para enviar y recibir información musical, como ser: nota, duración, fuerza de toque, modulaciones de los parámetros de
los sonidos, etc. Es decir que a través de un cable MIDI que conecta instrumentos y computadoras viaja la "partitura" completa de una obra musical.
Cuando tocamos un tema en un teclado con salida MIDI, la cual está conectada a una PC o a un sequencer (secuenciador), podemos grabar en estos toda la
información musical para luego reproducirla tal cual la tocamos. También podremos luego editar, corregir errores de interpretación como por ejemplo retrasos
en el tempo, sobregrabar segundas voces, transportar hacia arriba o hacia abajo ("más" o "menos agudo"), etc. Así podremos tocar toda una obra nosotros
mismos o probar diferentes cambios en los arreglos.
Las líneas negras representan los cables MIDI que tienen en sus extremos conectores DIN de 5 pines (contactos) y un anillo de blindaje (masa o ground).
un TECLADO MAESTRO donde ejecutamos cada línea melódica que es enviada por la salida MIDI OUT hacia
una PC -entrando por el MIDI IN de la PC- donde grabamos en una "pista" del software secuenciador, cada línea musical, de a una por vez. Más
tarde, al activar el "play" en el secuenciador, saldrán por la salida MIDI OUT de la PC, las diferentes "partituras" que se irán distribuyendo a cada
teclado o módulo tal como las hayamos asignado.
un TECLADO SECUNDARIO
un MODULO DE SONIDO
una cadena de AUDIO compuesta por una consola de mezcla, un amplificador y dos bafles monitores.
THRU es la abreviatura de la palabra THROUGH que traducida significa "a través". Cuando un teclado recibe una señal MIDI por su entrada MIDI IN ,
reproduce las partes melódicas que se le asignaron pero paralelamente esta señal pasa "a través" de sus circuitos y sale, tal cual como ingresó, por la salida
MIDI THRU , para ser enviada a otros teclados y módulos.
Por la salida MIDI OUT en cambio, saldrá sólo lo que en ese teclado en particular se ejecute, y no lo que ingresó por MIDI IN .
Los canales MIDI son 16, siendo el canal 10 de uso exclusivo para percusión (batería), es decir que si existe una línea en canal 10, ésta sólo sonará en los
sintetizadores que posean un set de percusión.
Ejemplo
Supongamos que queremos ejecutar un dúo de piano y violín, y tenemos dos teclados de música y una PC.
En el teclado maestro cuyo MIDI out está conectado al MIDI in de la placa de audio de la PC, ajustamos el parámetro MIDI Transmit channel (canal midi de
transmisión) en canal 1 , y seleccionamos sonido de piano.
Abrimos en la PC algún programa de edición de MIDI como por ejemplo Cakewalk , seleccionamos una pista del secuenciador, y lo ponemos a grabar. Según
las opciones del secuenciador, escucharemos 4 clicks que nos darán la entrada para tocar, y luego tal vez escuchemos más clicks marcandonos el pulso
(tempo de la canción) . Entonces ejecutamos la línea de piano, la cual se irá registrando en la pista elegida.
Ahora, si ajustamos el otro teclado en sonido de piano, y el MIDI Receive channel del mismo (canal midi de recepción) en canal 1 , al retroceder el
secuenciador y presionar la tecla de reproducción la melodía de piano que grabamos saldrá de la PC através del cable MIDI out por el canal midi 1 , entrará
al teclado maestro por MIDI in , saldrá por MIDI thru , entrará por el MIDI in del teclado secundario y así finalmente se escuchará dicha melodía.
Luego ajustamos el teclado maestro en MIDI Transmit channel=2 , y elegimos el instrumento "violín". Ponemos a grabar el secuenciador en otra pista y
mientras escuchamos la melodía de piano sonar en el teclado secundario, ejecutamos la melodía del violín (si el teclado es multitímbrico todo esto puede
hacerse en el mismo teclado, tocar un violín mientras la PC conduce un piano).
El más usado es Note (nota) que indica el momento en que debe dispararse una nota ( Note On ), en qué canal MIDI ( MIDI channel ), con qué altura o número
de nota ( Note Number ), qué tan fuerte ( Velocity ) y su duración o cuánto tiempo pasará hasta que se apague ( Note Off ). El valor que corresponde a la nota
C4 (Do central) es 74, entonces para un teclado estándard de 61 teclas la primera nota que es un C1 se representa con el valor nota 36 y la última tecla, un
C6, con el valor 96.
Otros eventos podrán ser usados para hacer que un teclado cambie de instrumento ( Program Change ), o que cambie algún parámetro propio de esa marca y
modelo a través de los mensajes exclusivos ( Exclusive Messages ).
Otros eventos son los denominados Controladores ( Control Change o Controller ) los cuales indican el número de controlador y el valor que debe tomar en ese
momento. Muchos ya están asignados por el estándar MIDI mientras otros se pueden utilizar libremente. Por ejemplo, el controlador número 1 está reservado
para ajustar la cantidad de vibrato ( Modulation ).
Parámetros
Aclaración : Todos los eventos MIDI abajo citados van acompañados del valor Hr:Mn:Sc:Fr (hora:minuto:segundo:fracción) o su equivalente Meas:Beat:Tick
Controladores MIDI
No Nombre - Utilidad
0 -asignable- Los controladores que no están preestablecidos pueden ajustarse
para afectar algún parámetro definido en los equipos conectados vía MIDI
(filtros y modulaciones en sintetizadores, parámetros en procesadores de efecto
como tiempo de reverberancia, etc.)
1 Modulation (rueda de modulación) = Vibrato (variación repetitiva en la altura
del sonido)
2 Breath (control por respiración)
3 -asignable-
4 Foot controller (controlador de pie - pedal)
5 Portamento time
6 -asignable-
7 Volume
8 Balance
9 -asignable-
10 Pan (posición estereo)
11 Expression
12-63 -asignable-
64 Pedal (sustain)
65 Portamento
66 Pedal (sostenuto)
67 Pedal (soft)
68 -asignable-
69 Hold 2
70-90 -asignable-
91 External Effect Depth
92 Tremelo Depth
93 Chorus Depth
94 Celeste (detune) Depth
95 Phaser Depth
96-120 -asignable-
Modos MIDI
Los datos MIDI, además de transmitirse en diferentes canales, pueden transmitirse en dos modos básicos: Poly y Mono . En el modo Poly es factible la
polifonía , es decir que pueden reproducirse notas superpuestas mientras que en Mono ( monofónico ) cada vez que se dispare una nota se apagrá la que
estaba sonando, no permitiéndose una superposición de notas como es el caso de los acordes.
Cualquiera de los modos anteriores puede ajustarse a su vez en los modos Omni On u Omni Off . Cuando la función Omni es activada (Omni On) todos los
eventos van a ser reconocidos, produciendo notas u otros efectos, independientemente del canal en que sean recibidos y del número de canal que se haya
ajustado en el parámetro MIDI Receive Channel (canal de recepción MIDI) el cual establecía a que canal respondería el teclado o equipo MIDI.
Por ejemplo, si un secuenciador transmite desde una PC una melodía para piano en canal 1 y una melodía para violín en canal 2 a un teclado externo en el
cual se seleccionó el instrumento piano y se ajustó el canal de recepción MIDI a 1 y al modo Omni off, sólo escucharemos la melodía para piano. Si se activa el
modo Omni (On) escucharemos ambas melodías (canal 1 y 2) con el sonido de piano.
Si el teclado es multitímbrico (pueden sonar varios instrumentos a la vez) y se asigna un piano a la sección o banco 1 con su canal MIDI ajustado a 1 y en
Omni Off mientras que a la sección o banco 2 se le asigna un violín en canal 2 y Omni off, escucharemos la melodía para piano tocada por el sonido de piano y
la melodía para violín con el sonido de violín. Pero si se activa el Omni On ambas melodías serán tocadas por ambos instrumentos.
Cuando un teclado se ajusta a Local Off al tocarlo no se escuchará ningún sonido en su salida de audio sino que sólo se transmitirán los datos MIDI que
podrán hacer sonar a otro teclado o módulo de sonido.
Otros ajustes que se pueden hacer sobre equipos MIDI son para establecer qué eventos MIDI ignorará. Por ejemplo, a un teclado se le puede ajustar un
parámetro que puede denominarse como Preset Change o Program Change a Off ó cero con lo cual serán ignorados los cambios de instrumento que reciba.
De la misma manera se podría ajustar el Recieve Modulation (o nombre similar) a cero u Off para que el teclado no produzca vibrato cuando reciba un evento
controlador Modulation.
También puede hacerse que un teclado no envíe por su MIDI Out ciertos eventos como ser un cambio de programa o instrumento (Program Change) ajustando
a cero u Off el Transmit Program Change. Con esto podremos cambiar de sonido en el teclado en el cual tocamos sin que esto produzca un cambio de sonido
en otro teclado que esté siendo conducido por el anterior.
Si se tienen equipos MIDI externos a la PC como ser módulos o teclados sintetizadores, procesadores de efectos, etc., resulta muy útil trabajar con los
Mensajes de Sistema Exclusivo o Sysx o Sysex .
Cada teclado o equipo MIDI maneja cierta variedad de parámetros que son específicos o exclusivos de su marca y modelo. Cuando un usuario edita un sonido
o efecto, a través de los Sysx (System Exclusive) puede enviar vía MIDI a un Secuenciador o PC todos los valores editados que pueden guardarse en un
archivo MIDI para luego recargarlos en el equipo recuperando las configuraciones usadas. Por ejemplo, si construimos cierta cantidad de sonidos o
instrumentos en un teclado sintetizador externo a la PC, los cuales serán usados sólo para una canción, posiblemente luego necesitaremos borrarlos para
liberar la memoria del equipo y así poder ocupar esa memoria editando nuevos instrumentos. Entonces, podemos enviar o volcar los datos exclusivos desde el
teclado al secuenciador y despreocuparnos de que podamos borrar los sonidos usados, puesto que cuando volvamos a abrir la canción desde un archivo MIDI
los datos exclusivos podrán ser enviados de vuelta al teclado.
Lo mismo puede hacerse con otros equipos MIDI como ser los procesadores de efectos.
Los Sysx son cadenas de números Hexadecimales de dos dígitos cada uno. Cada dígito hexadecimal puede tomar uno de los siguientes valores y su
correspondencia con el valor decimal tradicional (esto es sólo informativo, enviarlos o recibirlos es muy sencillo, ver más abajo):
De esta manera, en lugar de tener un número binario largo como por ejemplo 11110000 se leerá F0. Es decir, cada 4 bits (=1 nibble = 1/2 byte) se reemplazan
directamente con un dígito hexadecimal.
(vuelco de datos)
Primero debemos tener conectado el equipo MIDI (desde el cual queremos descargar los parámetros) con un Secuenciador o una PC con software
secuenciador y a través de un cable MIDI (salida -OUT- del equipo conectada a la entrada -IN- del secuenciador y entrada -IN- del equipo conectada a la salida
-OUT- del secuenciador).
Deberemos poner el secuenciador en el modo de recepción de Sysx. Si tenemos una PC con un secuenciador como el Cakewalk debemos entrar en el menú
View/Sysx o hacer click en el botón
Se abrirá una ventana en donde seleccionaremos un número de banco en el que se almacenarán los datos haciendo click en el número o su fila.
Luego deberemos hacer clcik en Recieve para preparar el secuenciador para la recepción de datos.
Si hacemos click en un banco no vacío (que no diga "empty") nos preguntará si queremos adosar (agregar) los datos nuevos a continuación de los ya cargados
en ese banco ("Append to existing bytes?"). Si hacemos click en "no" entonces los datos nuevos reemplazarán a los anteriores los cuales se borrarán.
Paso seguido se abrirá una ventana con varias opciones de los equipos más conocidos. Si el nuestro no está en la lista o tenemos dudas simplemente
dejamos seleccionada la opción por defecto ("You start dump on instrument").
Al presionar OK aparecerá una ventanita indicando los bytes que se van recibiendo y el espacio disponible.
Ahora debemos leer el manual del equipo MIDI para saber en que menú debemos entrar o qué teclas presionar para enviar los mensajes exclusivos. El menú
puede decir algo como "All single dump", "All multi dump", "One patch dump", "Send exclusive", "Send MIDI Sysex", "Sysex storage", etc.
En el instante en que ejecutemos el envío de los Sysx, la ventanita del secuencer indicará una cantidad de bytes recibidos.
Haciendo click en Auto aparecerá una tilde en la columna auto de ese banco que indicará que cuando abramos de nuevo el archivo con Cakewalk éste nos
preguntará si deseamos enviar en ese momento los mensajes exclusivos. Si rechazamos esta orden o la opción auto no está activada igualmente podremos
enviarlos después haciendo click en Send o en Send All (enviar todos) en la ventana de View Sysx .
Haciendo doble click en un banco o presionando el botón Edit Bytes veremos la tira de números hexadecimales que representan los parámetros y sus valores
editados.
Con el botón Port seleccionamos por cuál de los dispositivos MIDI habilitados en MIDI devices saldrán los Sysex.
Para que un equipo reciba los Sysx debe tener habilitada la opción de recibir (no ignorar) datos de sistema exclusivo, es decir estar en "on" o en "1".
Generalmente el canal de recepción MIDI debe estar ajustado a 1.
Cuando hay varios equipos MIDI es conveniente desactivar la recepción de Sysex de aquellos que no los necesitan para evitar problemas.
Los datos MIDI son transmitidos como cadenas de bits en serie (uno después del otro), agrupados de a 8 (1 byte = grupo de 8 bits), ocupándose 3 bytes para
cada evento MIDI.
En algunos casos como el del bend range (deslizamiento de altura de la nota) el cual puede tomar una gran variedad de valores, es necesario ocupar dos
grupos de tres bytes (ver más abajo LSB y MSB).
En la tabla de abajo se puede ver que para un evento del tipo disparo de nota (note on) los cuatro primeros bits son siempre 1001, luego siguen 4 bits que
indican el número de canal (channel, representado en la tabla con nnnn); el siguiente byte comienza con cero y los otro siete bits indican el número de nota
(key=kkkkkkk) pudiendo tomar para este teclado valores entre 24 y 108; el tercer byte comienza con cero y los otro siete bits indican el valor de velocidad o
fuerza de toque (velocity=vvvvvvv) que puede tomar valores de entre 0 y 127.
El valor que corresponde a la nota C4 (Do central) es 74, entonces para un teclado estándard de 61 teclas la primera nota que es un C1 se representa con el
valor nota 36 y la última tecla, un C6, con el valor 96.
El número total para representar una nota podría ser 1001 0001 0 0111000 0 0000011 .
Ejemplo: La tablas siguientes son relativas al teclado Kawai Spectra KC10. Cada teclado o equipo tendrá su MIDI IMPLEMENTATION CHART (Tabla de
Implementacion MIDI) que indica qué datos MIDI genera y qué datos MIDI reconoce, siguiendo qué formato. De esta manera podemos saber si, por ejemplo,
un teclado posee la función de Aftertouch (variación de la presión luego de atacar una tecla).
1o 2o 3o Descripción Referencias
kkkkkkk=24~108
vvvvvvv=1~127 0=off
Single"111"~"248"
ppppppp=96~111
Multi "111"~"128"
LSB : Less Significant Byte (Byte menos significativo). Si usamos 16 bits serían los 8 bits de menos valor (como las unidades en un número decimal de dos
dígitos)
MSB : Most Significant Byte (Byte más significativo). Si usamos 16 bits serían los 8 bits de mayor valor (como las decenas en un número decimal de dos
dígitos)
Clock : Reloj
1o 2o 3o Descripción Referencias
vvvvvvv=1~127 Note on
vvvvvvv=0 off
Single "111"~248
ppppppp=96~111:
Multi "111"~"128"
ppppppp=112~127:
ignored
Omni on : Activado de la función Omni que hace que cualquier dato entrante en cualquier canal MIDI sea aceptado y dispare un evento.