Documente Academic
Documente Profesional
Documente Cultură
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 seguirn 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 requerirn 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 limitacin del lenguaje MIDI, y es su transmisin en serie. Por un cable
MIDI discurren todos esos bytes que hemos citado... pero uno detrs de otro, no todos a
la vez. Esto tiene implicaciones prcticas: 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 llegarn todas juntas al sampler, sino una
detrs 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 podran surgir
problemas, como indicaremos a continuacin. 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 ests 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.
En nuestro esquema, el secuenciador enva 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, lgicamente, por su MIDI IN (D). As
pues, los datos del secuenciador estaran siendo recibidos por los dos aparatos, ya que
el primero (sintetizador) los recibe directamente por su MIDI IN, y al mismo tiempo los
copia
los
reenva
por
su
MIDI
THRU
hacia
el
sampler.
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 mquinas. Aqu te animamos
a curiosear e investigar acerca de los SysEx, pero no es el objeto de este artculo
profundizar sobre ellos.
Equipo MIDI bsico
hardware, y muestran sus datos en monitores de gran tamao que facilitan las tareas.
Sin embargo, para actuar en directo muchos prefieren la seguridad de los
secuenciadores hardware; algunos ejemplos clsicos de estos aparatos son el Alesis
MMT-8 (foto izquierda) o el Roland MC-50. Tambin se utilizan los viejos ordenadores
Atari
y
Amiga
para
este
fin.
Los secuenciadores software ms famosos son sin duda Logic (foto abajo), Cubase y
Cakewalk (o su reciente actualizacin, SONAR). Cakewalk es el ms extendido en
Amrica, y los otros dos son lderes 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 nmero de pistas a la vez, as que esto no ser un
lmite.
Si dispones de varias mquinas MIDI y quieres tener un control absoluto sobre ellas, todo
debe estar bien conectado y debe gestionarse principalmente desde el secuenciador.
Desde este programa podrs grabar todos tus equipos por pistas, y luego cortar, copiar
y editar las secuencias. T solo podrs completar un arreglo complejo de muchas pistas.
Lo normal es comenzar grabando una pista base, y luego ir grabando las dems por
encima, mientras suenan las anteriores que has grabado. As el tema se ir
"construyendo"
y
solo
se
requiere
la
intervencin
de
una
persona.
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
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 estndar,
universal, hace que cualquier dispositivo compatible pueda integrarse en la cadena, y
las
posibilidades
son
mltiples.
Por ejemplo, Yamaha ofrece su controlador de viento WX5 (a la izquierda), que es una
especie de saxofn-flauta que enva datos MIDI basndose en el soplido. Hay mdulos de
sonido especiales para este controlador, como el Yamaha VL-70m, que imita los timbres
de viento reales mediante modelado fsico. Pero como el WX5 es MIDI, puede controlar
cualquier cosa... podras tocar un violn o unas marimbas usando este curioso aparato.
Los guitarreros tambin tienen sus propios dispositivos MIDI. Acoplando una pastilla MIDI
a tu guitarra puedes convertir su seal en datos MIDI que podrn 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 mquinas msa innovadoras y originales. Si te
gustaron las arpas lser 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.
esquemtico
el
diagrama
del
prototipo
esquemtico
del
y
tutorial
MIDI
prototipo
version
0.1
Aqui
en
version
http://rapidshare.com/files/436917031/Mi_primer_bateria_sch_ver_0.1.pdf
Los conectores J3, J4 y J5 son las entradas analogicas para los piezo, J8 es para el LCD de
16x2, J1 es la salida MIDI, J9 la salida serial RS-232. J6, J7 y J10 los usaria luego para
agregar
los
botones.
Originalmente vi el proyecto de www.edrum.info y lo queria armar igual, pero por alguna
razn no me funcion, ni siquiera encendia el LCD, era como que no lo inicializaba
correctamente. Buscando en el sitio no encontr el codigo fuente, solo la versin
compilada .HEX (Luego me di cuenta que nunca liber el codigo fuente). Un poco
frustrado decidi probar solamente el LCD, como suelo programar usando el compilador
en C de CCS PCWHD, este ya trae una libreria "lcd.c", que es muy fcil de usar, pero
utiliza el LCD en 4 bits y no en 8 bits como el que ya tenia, esto por lejos me parecio una
ventaja ya que me libera cuatro pines del micro que se pueden usar para poner mas
pulsadores. Ademas esta libreria utiliza el puerto D, en ves del puerto B, asi que cambi
los pines del LCD compil un programa de prueba y comprob que el LCD funcionaba
correctamente.
Por otro lado luego tuve problemas con la parte analgica de los sensores, la placa con
los operacionales LM324, aunque cuando la habia armado en el protoboard parecia
funcionar bien. Finalmente luego de buscar en algunos sitios encontr este proyecto
basado
en
Arduino
http://todbot.com/blog/2006/10/29/spooky-arduino-projects-4-and-musical-arduino/
Aqui se ve que conectan directamente el piezo en paralelo con una resistencia de 1M a
la entrada analogica. El zener de 5,1 V tiene la funcin de limitar el voltaje generado por
el golpe sobre el piezo, pero los pic ya tienen internamente en cada pata un par de
diodos de proteccin. Esta figura est sacada de la hoja de datos del PIC16F877
Asi que con esto en mente prob lo mismo sobre el PIC y funcion. Realic algunas
pruebas con el convertidor AD y enviaba el valor por el puerto serial a la PC. Ahora lo
que
faltaba
era
hacer
que
suene
por
MIDI.
MIDI
desde
0...
Esta seccin explica paso a paso como son los mensajes midi para saber que es lo que el
PIC debe enviar a la PC, si ya conocen el protocolo MIDI se la pueden saltear.
El protocolo MIDI tiene dos partes, una parte lgica que involucra que un instrumento
musical envia mensajes para indicarle a la PC que se presion o se solt una nota, y otra
parte fsica o hardware donde se definen como seria la comunicacin serial de forma
ptica para recibir estos mensajes, primero vamos a ver la parte de los mensajes.
Para saber como funciona el protocolo midi, normalmente se conecta un instrumento
musical con salida MIDI, como un teclado o un organo, a la pc usando una interfase MIDIUSB.
Algunos teclados o controladores MIDI nuevos ya vienen con puerto USB, por ejemplo
tengo
un
controlador
M-Audio
Keystation
49es.
En esta foto se ve que tiene los dos conectores, el tipo DIN 5 MIDI OUT y adems un
conector
USB
tipo
B
similar
al
de
las
impresoras.
Por defecto instala 8 puertos midi virtuales llamados "MIDI Yoke:1" al "MIDI Yoke:8"
Ahora hay que instalar un programa que permite enviar notas MIDI usando el teclado de
la pc, existen varios, pero el que uso se llama "Bome's Mouse Keyboard", lo pueden
bajar
de
ac
http://www.bome.com/bome/downloads/MouseKeyboard200.exe
Es una versin shareware o postcardware, por lo que al iniciar aparece una nag screen
tipo recordatorio de compra con una demora de 20 segundos, pero si lo registran
desaparece, fuera de eso es completamente funcional. Ahora deberian configurarlo para
usar como salida MIDI OUT del programa el primer puerto midi virtual "MIDI Yoke: 1".
Esto lo hacemos para poder escuchar y ver los datos al mismo tiempo.
Para poder escuchar algun sonido deberiamos conectar la salida del puerto "MIDI Yoke:
1" al MIDI mapper del windows, para esto vamos a usar otra utilidad llamada Hubi's
loopback que sirve para conectar puertos MIDIs por software. Lo bajan de aca
No tiene ningun instalador, solo hay que ejecutar el archivo "HWMDCABL.EXE" y veran
que en la barra de tareas les sale una nueva aplicacin "Hubi's MIDI cable" que no
despliega ninguna ventana, pero si hacen click derecho sobre la misma aparecen las
opciones
Aqui deberian seleccionar como salida en la tercer columna donde dice "0-No Output" el
Mapeador Microsoft MIDI, al seleccionar algo se cierra la ventana, por lo que deberian
hacer click derecho nuevamente y en la segunda columna donde dice "0-No Input"
deberian
seleccionar
"MIDI
Yoke:1",
con
esto
deberia
quedar
asi
Resumiendo, lo que hicimos fue conectar el puerto "MIDI YOKE: 1" al Mapeador Windows
MIDI para poder escuchar las notas, este usa por defecto el sintetizador FM de la placa
de audio que tiene un psimo sonido, en mi caso si se fijan la ultima opcin en la
columna de salida dice "Sintetizador por Software de tabla de ondas XG", este es una
mejora sobre el midi mapper. Sin embargo luego aprenderemos como mejorarlo cuando
veamos los instrumentos VSTi de Steinberg. Por el momento seguiremos con esos
soniditos.
Aqui vamos a hacer una aclaracin, nunca elijan el mismo puerto virtual como entrada y
como salida, porque se produce una situacin de retroalimentacin de datos que causa
una insuficiencia de buffer y el MIDI Yoke deshabilita el puerto con el siguiente cartel de
advertencia (Por ejemplo le puse de entrada "MIDI Yoke: 1" y de salida el mismo puerto)
Volvemos al "Bome's Mouse Keyboard" y si est todo bien al presionar las teclas "Z X C V
B N M" deberian sonar las teclas blancas de la primer octava, las negras serian "A S D F
G H", las blancas de la siguiente octava serian "Q W E R T Y" y sus negras "1 2 3 4 5 6
7", con F3 y F4 se suben o bajan las octavas. Por defecto deberia sonar el primer patch o
instrumento que seria un piano, ahora bien, en MIDI existen 16 canales, en teoria se usa
un canal por instrumento. El canal 10 siempre se lo reserva para las percusiones, para
cambiar
de
canal
lo
eligen
donde
dice
channel.
Si ahora presionan "Z X C V" deberia sonar un KICK, un SNARE y todos los otros
instrumentos de una bateria. Por supuesto que no suena muy lindo, pero la idea por el
momento es ver que mensajes midi se envian para hacer sonar un KICK o un SNARE.
Luego veremos como mejorar el sonido cuando lleguemos al Addictive Drums en la
seccion sobre los VSTi. Ahora solo falta ver que mensajes midi se estan enviando.
Si ahora presionan "Z X C V" deberia sonar un KICK, un SNARE y todos los otros
instrumentos de una bateria. Por supuesto que no suena muy lindo, pero la idea por el
momento es ver que mensajes midi se envian para hacer sonar un KICK o un SNARE.
Luego veremos como mejorar el sonido cuando lleguemos al Addictive Drums en la
seccion sobre los VSTi. Ahora solo falta ver que mensajes midi se estan enviando.
Monitor
de
mensajes
MIDI:
MIDI-OX
Para poder monitorizar los datos que llegan por un puerto Midi utilizo el Midi-OX, lo
pueden
bajar
de
aqu
http://www.midiox.com/zip/midioxse.exe
Luego de instalarlo lo ejecutan y deben configurar el puerto MIDI de entrada, en
"Options"
->
"MIDI
Devices..."
Aqui se abre otra ventana donde se puede seleccionar los puertos midi de entrada y
salida (se puede por ejemplo recibir notas por un puerto procesarlas de alguna manera y
enviarlas
por
otro).
BUENO el post sigue, pero hasta aca lo pongo, si a alguien le interesa mandenme un
mensaje privado y les comento. El usuario es tec_claudio_perez
Index
1. Concepto General
2. Puertos de comunicacion y configuraciones
3. Canal MIDI.
4. Voz MIDI
5. Programa MIDI
6. Mensajes basicos
7. Ampliando informacion sobre MIDI
1. Concepto General
MIDI es un protocolo de comunicacion entre intrumentos musicales. Se creo en los 70 y ya hace tiempo que
esta consolidado como la interficie entre instrumentos por excelencia.
Mediante el MIDI, los instrumentos se envian mensajes que contienen las acciones que el musico hace sobre
ellos. Por ejemplo, si un teclista aprieta una tecla, por MIDI se recibe que se ha apretado dicha tecla y, cuando
la suelta, tambien de envia el correspondiente mensaje.
Asi pues, lo que se envia por MIDI no es el sonido que producen los instrumentos, sino las aciones o eventos
que se producen en el.
Esto permetiria, por ejemplo, almacenar una interpretacion para su posterior edicion y reproduccion... MIDI
tambien ofrece mecanismos para sincronizar y secuenciar los instrumentos, es decir, dirigirlos como si fuera
una orquesta.
La ventaja del MIDI es que es un estandard muy establecido y que la mayoria de aparatos musicales tienen
algun tipo de interficie MIDI. Pero, esta es, al parecer, su unica ventaja, pues, en todos los sentidos, el MIDI
limita por anticuado: polifonia, numero de aparatos, conectividad, longitud del cableado, velocidad... Esto
provoca, a menudo, que cada fabricante establezca su propia ampliacion del estandard aunque, por suerte,
mantienen, la compatibilidad con el MIDI basico.
En MIDI, es muy importante la forma en que conectamos los dispositivos, pues la funcion de cada aparato varia
dependiendo de como y con quien lo conectemos.
Si estas empezando con MIDI, seguramente, la primera configuracion que haras sera conectar un instrumento a
tu ordenador. Tipicamente, se conectan los IN's con los OUT's, asi, cuando tocas el instrumento, podras
registrarlo en el ordenador y, despues de editar la interpretacion, podras escucharla en el instrumento.
El camino que siguen los mensajes MIDI, a traves de los dispositivos recibe el nombre de cadena. En la
configuracion anterior, estamos cerrando la cadena en un bucle. Si en vez de conectar las OUT conectamos las
THRU los mensajes no pararian de dar vueltas, con las OUT no porque las OUT suelen no transmitir aquellos
mensajes que el dispositivo ha capturado para si.
3. Canal MIDI.
Si conectamos una cadena de varios instrumentos, i se van pasando los mensajes unos a otros, tocaran todos lo
mismo? No, en principio no. MIDI utiliza un metodo de direccionamiento basado en canales.
Existen 16 canales MIDI a los cuales direccionar los mensajes. Cada elemento MIDI escucha una serie de
canales (canales propios). Para cada instrumento, estos canales pueden ser mas de uno o pueden canviar pero
los mensajes de configuracion se enviaran siempre por el mismo canal, el llamado canal basico del
instrumento. Por este canal recibira que canales ha de atender o el modo de operacion.
A pesar de las posibilidades que dan los canales, piensa que los 16 canales son una de las limitaciones mas
graves del protocolo MIDI.
4. Voz MIDI.
Se les llama voces de un dispositivo a los elementos sonoros (sonidos) de este. Lo mas facil es asociar el
concepto de voz al de nota, pues lo normal es que una voz sea una nota en particular de un instrumento en
particular. Aun asi no siempre 'voz' es equivalente a 'nota'. En las cajas de ritmos, por ejemplo, una voz indica
un elemento del kit de percusion: Las maracas, el bombo, los platillos...
5. Programa MIDI.
Un programa MIDI es una combinacion determinada de 127 voces. En un teclado, el concepto de programa se
corresponderia con el de instrumento: Cuando canviamos de instrumento substituimos las voces de un
instrumento por las de otro.
En las cajas de ritmo, pasaria algo similar pero los programas se corresponderian con kits de percusion.
6. Mensajes Basicos.
Los mensajes mas normales son los de Activacion y Desactivacion de nota. Corresponden con la accion de
pulsar y soltar una tecla o nota y reciben dos parametros: La voz (o nota) y la velocidad con que se pulsa o
suelta.
La voz se indica con un numero del 0 al 127. Cuando la voz corresponde a una nota el 60 suele ser el Do medio
y cada escala ocupa 12 posiciones. La velocidad es un indicador de la intensidad de la nota. El valor va de 0 a
127 siendo el 64 una velocidad 'normal'.
NB: Un mensaje de activacion con velocidad 0 equivale a un mensaje de desactivacion (con velocidad 64).
La velocidad ayuda a dar mayor expresividad a la sequencia, pero, a veces no es suficiente. Aparece entonces el
mensaje de Postpulsacion que indica una variacion de la intensidad de la nota mientras esta siendo tocada.
Tambien necesita que se indique la nota y la 'velocidad';
Tambien tenemos un mensaje de cambio de programa. El programa se indica con un numero del 0 al 127.
Para controlar el volumen, los efectos, la configuracion y demas, tenemos los mensajes de cambio de control.
En el mensaje se indica el numero de control que se quiere modificar (0 a 127) y el valor que adopta dicho
control (0 a 127).
Todos estos mensajes van direccionados a un canal pero hay otro tipo de mensajes que van dirigidos a todos los
elementos. Son mensajes de sistema. Su funcion principal es sincronizar, activar, gestionar... todos los
elementos de la cadena.
Indice
0. Introduccion al MIDI
1. Especificacion MIDI
o 1.1. Hardware de conexion
o 1.2. Conceptos Basicos
o 1.3. Tipos de estados
o 1.4. Tipos de mensajes
o 1.5. Mensajes de modo de canal
o 1.6. Mensajes de voces de canal
o 1.7. Mensajes de sistema comunes
o 1.8. Mensajes de sistema de tiempo real
o 1.9. Mensajes de sistema exclusivos
2. Aparatos MIDI
o 2.1. Vision general
o 2.2. Teclado Mudo
o 2.3. Pedales y palancas MIDI
o 2.4. Secuenciador
o 2.5. Lanzadores
o 2.6. Arpegiadores y harmonizadores
o 2.7. Generador de sonidos sintetitzados (sintetizador)
0. Introduccion al MIDI.
MIDI es un protocolo de comunicacion digital entre intrumentos musicales que se empezo a usar en los 70 y
que ya hace tiempo que esta consolidado como la interficie entre instrumentos por excelencia.
Lo que se envia por MIDI no es el sonido que producen los instrumentos, sino los eventos: Cuando se pulsa una
nota, cuando se varia un control... Permite sincronizar y sequenciar instrumentos, almacenar una interpretacion
para su posterior edicion y reproduccion...
La ventaja del MIDI es que es un estandard muy establecido y que la mayoria de aparatos musicales tienen
algun tipo de interficie MIDI. Pero, esta es, al parecer, su unica ventaja, pues, en todos los sentidos, el MIDI
limita por anticuado: polifonia, numero de aparatos, conectividad, longitud del cableado, ancho de banda... Esto
provoca, a menudo, que cada fabricante establezca su propia ampliacion del estandard aunque, por suerte,
mantienen, la compatibilidad con el MIDI basico.
1. Especificaciones MIDI
1.1. Hardware de conexion
Interfaz serie: A 31,250 Kb/s (1% de tolerancia) asincrono con un start bit, ocho bits de datos empezando por
el menos significativo y un stop bit, sin bit de paridad. Se realiza por bucle de corriente: 5 mA -> zero logico y
1uA -> uno logico. Entradas optoaisladas con un tiempo de respuesta de 2ns o menor.
Conectores: DIN de 5 pins (180o). Se utilizan 3: In(4), Out(5) y massa(2). La longitud maxima del cable es de
15 metros y tiene que ser trenzado y apantallado con la pantalla conectada al pin 2 en ambos extremos. Las
patillas 1 y 3 se dejan sin conectar.
Puertos MIDI.
Los elementos MIDI se conectan mediante tres tipos de puertos.
Configuraciones tpicas:
Cadena: Lo que envia el director lo interpretan todos pero lo que se toca en los otros no es enviado a
los demas.
Bucle: Los dispositivos envian informacion al director y este la distribuye posteriormente. Se utiliza
mucho en composicion cuando el director es, por ejemplo, un ordenador que almacena lo que interpreta
un instrumento, y, despues de editarlo, se devuelve al instrumento para escuchar el resulado.
Estrella: En cadenas muy largas, se suelen producir errores de comunicacion y retardos. Un director,
con mas de una salida, que envia mensajes por cada una de ellas a un dispositivo diferente reduce la
longitud de las cadenas.
Hibridos Se pueden combinar hasta la saciedad. Cada situacion tiene su configuracin apropiada.
Mensajes de sistema: Son los que no se ligan a un canal. Los 4 bits altos de byte de estado estan a uno y los
bajos indican el comando.
Modo Monofonico: En modo monofonico, un canal se corresponde con una voz. Se indica en los bytes de
datos (uuuuuuu) que numero de canales asignados en este modo a partir del canal basico. si uuuuuuu es cero
seran los todos los que tenga el instrumento.
MONOFONICO: 1011nnnn 01111110 0uuuuuuu
Modo Polifonico: Cada canal puede controlar mas de una voz simultaneamente.
POLIFONICO: 1011nnnn 01111111 00000000
Desactivar todas las notas: Los cuatro anteriores tambien lo hacen pero este permite hacerlo sin necesidad de
conocer el modo de operacion actual ni cambiarlo.
DESACTIVA TODA NOTA: 1011nnnn 01111011 00000000
Modo Control Local ON/OFF: El control local del dispositivo se puede activar o desactivar con este mensaje.
Se puede as hacer que el dispositivo solo haga caso al control MIDI. XXXXXXX es 1111111 para activado y
0000000 para desactivado.
CONTROL LOCAL: 1011nnnn 01111010 0XXXXXXX
Reajuste de Controles: Es una funcion asignada posteriormente al estandard. Lo que hace es inicializar los
controles como el volumen y el pitch.
REAJUSTE CONTROLES: 1011nnnn 01111001 00000000
Estado Cambio de programa (1100nnnn): Solo necesita un byte de datos que indica un programa del 0 al
127.
Estado Presion de canal (1101nnnn): Es similar al de Pulsacion de teclado polifonico pero afecta a todas las
notas del canal especificado. Por lo tanto solo requiere un byte de datos, el de presion.
Estado Modificacion del pitch (1110nnnn): De los dos bytes de datos que necesita, el primero es el byte
menos significativo y el segundo el mas significativo. El valor central del pitch es 2000h y la sensibilidad de
variacion del pitch se selecciona en el receptor.
El estado acaba cuando entra un mensaje de fin de exclusivo (11110111) o cualquier otro byte de estado que no
sea de tiempo real.
Generacion de sonido
46 Sound Variation
47 Sound Timbre
48 Sound Release Time
49 Sound Attack Time
4A Sound Brightness
4B Sound Control 6
4C Sound Control 7
4D Sound Control 8
4E Sound Control 9
4F Sound Control 10
Efectos
5B Effects Level
5C Tremulo Level
5D Chorus Level
5E Celeste Level
5F Phaser Level
Parametros
60 Data Button increment
61 Data Button decrement
62 Non-registered Parameter (fine)
63 Non-registered Parameter (coarse)
64 Registered Parameter (fine)
65 Registered Parameter (coarse)
Modo de canal
78 All Sound Off
79 All Controllers Off
7A Local Keyboard (on/off)
7B All Notes Off
7C Omni Mode Off
7D Omni Mode On
7E Mono Operation
7F Poly Operation
60
61
62
63
64
65
2. Aparatos MIDI
2.1. Vision general
A parte de los instrumentos, los generadores de sonido y los sequenciadores, existen otros elementos mas
discretos, pero igual de utiles en una configuracion MIDI, gracias a los cuales podemos sacarle un mayor
partido.
Hoy en dia muchos de los elementos aqui citados, suelen estar acoplados entre si en una sola unidad. El
ejemplo mas claro de esto es el ordenador que, gracias a su versatilidad, practicamente, puede hacer las
funciones de cualquier elemento MIDI. Aun asi, no siempre se amortiza un equipo que haga demasiadas
funciones.
Los elementos pueden hacer tres tipos de funciones:
2.4. Secuenciador
Un secuenciador permite generar sequencias MIDI en frio para reproducirlas despues de forma sincronizada.
Por lo general, el aparato ofrece la posibilidad de crear la secuencia con un metodo que consiste en llenar los
espacios de un compas con determinadas notas. No tenemos, pues, que interpretarla con un instrumento.
Esta claro que si nos ceimos a los 16 espacios ke suele tener el sequenciador y a poner o no una nota, se limita
mucho la expresividad de las sequencias por lo que, ademas se nos permite variar varios parametros de cada
uno de los 16 slots: Retardo, si se prolonga al siguiente slot, si hay un slide o el valor de uno o varios controles
del generador de sonidos.
Tambien existen los llamados DNA. Un DNA es una serie de parametros de retardo, enfasis... que se recogen a
partir de un interprete real y que se aplican a la sequencia en question. Dan mucha mas personalidad dado que
cada interprete y cada estilo tienen su propio DNA. Tan solo tengo noticias de DNA's aplicados a las sequencias
de percusion, pero pronto se aplicaran tambien a otro tipo de sequencias.
2.5. Lanzadores
Un lanzador es un modulo que almazena sequencias MIDI y que, a una senyal de el interprete, lanza una o otra
sequencia a la cadena. El modulo que hace de lanzador, suele permitir guardar las sequencias en un soporte no
volatil.
La funcion de lanzador de sequencias suele estar en el teclado o en el ordenador.
2.13. Multiprocesador
Los multiprocesadores son aparatos programables basados en un microprocesador. Estos aparatos permiten
realizar cualquier tipo de proceso a la secuencia de mensajes MIDI que nuestra habilidad como programadores
nos permita.
Hoy en dia este tipo de tarea la suele realizar un ordenador, pero a veces, un ordenador tiene un tiempo de
respuesta (latencia MIDI) excesivo para que la sequencia no se demore demasiado.
Un ordenador tiene, a menudo, otras cosas a las que atender y se produce lo que se llama una alta latencia
MIDI, es decir, se tarda demasiado en responder. Por eso, aveces, es aconsejable dedicar uno de estos pequeos
procesadores exclusivamente al proceso MIDI.
3. General MIDI
3.1. Introduccion
General MIDI es un estandard, aadido a MIDI, que intenta garantizar que la musica realizada en un equipo de
un fabricante se pueda interpretar en otro equipo de un fabricante diferente y suene de forma similar a como fue
concebido.
Un dispositivo General MIDI ha de cumplir los siguientes requisitos:
Los canales del 1 al 16 han de tener una polifonia minima de 24 voces cada uno.
El canal 10 reservado para instrumentos de percusion y el resto para los melodicos.
Los numeros de programa asociados a un conjunto estandard de 128 intrumentos.
Un kit de percusion estandard para usar en el canal 10.
Reconocer como minimo un subconjunto de controles de los controles recomendados.
Ha de ser sensible a la velocidad.
Recorrido de la rueda picht bend de +/- 2 semitonos.
Percusion Cromatica
04 Rhodes Piano
05 Chorused Piano
06 Harpsichord
07 Clavinet
Organos
10 Hammond Organ
11 Percussive Organ
12 Rock Organ
13 Church Organ
14 Reed Organ
15 Accordion
16 Harmonica
17 Tango Accordion
08 Celesta
09 Glockenspiel
0A Music box
0B Vibraphone
0C Marimba
0D Xylophone
0E Tubular Bells
0F Dulcimer
Guitarra
18 Acoustic Guitar1
19 Acoustic Guitar2
1A Electric Guitar1
1B Electric Guitar2
1C Electric Guitar3
1D Overdrive Guitar
1E Distorton Guitar
1F Guitar Harmonics
Bajo
20 Acoustic Bass
21 Electric Bass 1
22 Electric Bass 2
23 Fretless Bass
Cuerda
24 Slap Bass 1
25 Slap Bass 2
26 Synth Bass 1
27 Synth Bass 2
28 Violin
29 Viola
2A Cello
2B Contrabass
Ensemble
30 String Ensemble1
31 String Ensemble2
32 SynthStrings 1
33 SynthStrings 2
34 Choir Aahs
35 Voice Oohs
36 Synth Voice
37 Orchestra Hit
Metales
38 Trumpet
39 Trombone
3A Tubah
3B Muted Trumpet
Lenguetas
40 Soprano Sax
41 Alto Sax
42 Tenor Sax
43 Baritone Sax
44 Oboeh18
45 English Horn
46 Bassoon
47 Clarinet
Sintetizador solista
50 Lead 1 square
51 Lead 2 sawtooth
52 Lead 3 caliope
53 Lead 4 chiff
54 Lead 5 charang
55 Lead 6 voice
56 Lead 7 fifths
57 Lead 8 brass
64 FX 5 brightness
65 FX 6 goblins
66 FX 7 echoes
67 FX 8 sci-fi
48 Piccolo
49 Flute13
4A Recorder
4B Pan Flute
74 Taiko Drum
75 Melodic Tom
76 Synth Drum
77 Reverse Cymbal
4C Bottle Blow
4D Shakuhachi
4E Whistle
4F Ocarina
Sintetizador Acompaamiento
58 Pad 1 new age
59 Pad 2 warm
5A Pad 3 polysynth
5B Pad 4 choir
5C Pad 5 bowed
5D Pad 6 metallic
5E Pad 7 halo
5F Pad 8 sweep
Etnicos
68 Sitar4
69 Banjo5
6A Shamisen
6B Kotoh7
Percusion
70 Tinkle Bell
71 Agogo13
72 Steel Drums
73 Woodblock
3C French Horn
3D Brass Section
3E Synth Brass 1
3F Synth Brass 2
Tubos
Sintetizador Efectos
60 FX 1 rain
61 FX 2 soundtrack
62 FX 3 crystal
63 FX 4 atmosphere
2C Tremolo Strings
2D Pizzicato StringS
2E Orchestral Harp
2F Timpani
6C Kalimba
6D Bagpipe
6E Fiddlet
6F Shanai0
Efectos
78 Guitar FretNoise
79 Breath Noise
7A Seashore
7B Bird Tweet
7C Telephone Ring
7D Helicopter
7E Applause
7F Gunshot
Sonido Asociado
Voz
Sonido Asociado
35
59
Ride Cymbal 2
36
Bass Drum 1
60
Hi Bongo
37
Side Stick
61
Low Bongo
38
Acoustic Snare
62
Mute Hi Conga
39
Hand Clap
63
Open Hi Conga
40
Electric Snare
64
Low Conga
41
65
High Timbale
42
Closed Hi-Hat
66
Low Timbale
43
HighFloorTom
67
High Agogo
44
Pedal Hi-Hat
68
Low Agogo
45
Low Tom
69
Cabasa
46
Open Hi-Hat
70
Maracas
47
Low-Mid Tom
71
Short Whistle
48
Hi-Mid Tom
72
Long Whistle
49
Crash Cymbal 1
73
Short Guiro
50
High Tom
74
Long Guiro
51
Ride Cymbal 1
75
Claves
52
Chinese Cymbal
76
Hi Wood Block
53
Ride Bell
77
54
Tambourine
78
Mute Cuica
55
Splash Cymbal
79
Open Cuica
56
Cowbell
80
Mute Triangle
57
Crash Cymbal 2
81
Open Triangle
58
Vibraslap
Descripcion
Comentarios
Modulation
Main Volume
10
Pan
11
Expression
64
Sustain
121
123
Si se incluyen los parametros de afinacion, la afinacion inicial debera ser la referencia estandard: 440 Hz para el
La medio.
Recomendaciones sobre mensajes exclusivos de sistema:
General MIDI On:
0xF0
0x7E
[dd]
0x09
0x01
0xF7
Roland GS Mode: F0 41 10 42 12 40 00 7F 00 41 F7
GM Master Volume: F0 7F 7F 04 01 ll mm F7 (ll=LSB, mm=MSB - use 7F 7F for maximum volume)
GM Master Balance: F0 7F 7F 04 02 ll mm F7 (ll=LSB, mm=MSB - use 00 40 for centre balance)
NOTA: Los cambios de volumen y balanceado como SysEx se difieren del cambio de control en que los
controles se refieren al canal y los SysEx al dispositivo.
0 Pista Unica.
1 Pista Multiple sincrona. Todas las pistas empiezan al mismo tiempo y llevan el mismo reloj.
2 Pista Multiple asincrona. Cada pista puede empezar cuando quiera y ademas tiene un clock propio.
Los siguientes dos bytes codifican el numero de pistas del fichero y los dos ultimos el numero de tiempos de
delta por cuarto de nota cuyo significado se vera mas adelante.
4.4. Metaeventos
Los metaeventos son eventos utilizados en los SMF que no estan definidos en el estandard MIDI. Siguen el
formato:
FF xx nn dd...
Empiezan todos con FF (11111111) seguido del identificador del comando (xx), la longitud de los datos en
bytes (nn) y los datos propiamente dichos (dd..)
Cuidado: Estos mensajes no se deben de enviar a la ligera por el puerto MIDI pues un FF significa un Reset
del sistema.
Aqui teneis algunos de los mas utilizados:
Hex Binary
Data
Description
00
00000000 nn ssss
Numero de Track.
nn=02 (length of 2-byte sequence number)
ssss=sequence number
01
00000001 nn tt ..
Evento de Texto
nn=length in bytes of text
tt=text characters
02
00000010 nn tt ..
Informacion de Copyright.
nn tt=same as text event
03
00000011 nn tt ..
04
00000100 nn tt ..
05
00000101 nn tt ..
Letra de la cancion.
nn tt=same as text event
06
00000110 nn tt ..
Marcador.
nn tt=same as text event
07
00000111 nn tt ..
Cue point
nn tt=same as text event
2F
00101111 00
Finalizador de track.
51
01010001 03 tttttt
58
59
01011001 02 sf mi
Key signature
sf=sharps/flats (-7=7 flats, 0=key of C, 7=7 sharps)
mi=major/minor (0=major, 1=minor)
7F
01111111 xx dd ..
Tambien tenemos el mensaje de puntero de cancion (F2h). Es un mensaje comun de sistema que indica la
posicion dentro de la cancion. Dicha posicion, que se viene indicada en dos bytes de datos, es un numero que se
incrementa cada 6 tics de reloj y, por tanto, si los tics de reloj eran 24 por negra, cada 16 unidades
incrementadas del puntero corresponden a una nota negra. Una cancion que utilice el puntero de cancion podria
tener una duracion maxima de 1024 tiempos (negras).
Tanto el reloj como el puntero de cancion son utiles para controlar y sincronizar elementos MIDI que tengan
que adaptarse al tempo del resto del sistema como un arpegiador o una linia de bajo o percusion.
Paralelamente, tenemos el mensaje de trama temporal MIDI o MIDI Time Code (F1h). Es un mensaje
comun de sistema que determina la posicion actual en la cancion pero utilizando una codificacion SMPTE
(Society of Motion Picture and Television Engineers).
La codificacion SMPTE es un estandard comercial de codificacion del tiempo en dispositivos no musicales. La
utilizaremos para controlar cintas de audio, aparatos de video y otros aparatos que no entienden lo que es un
compas, una nota o el tempo. SMPTE establece una subdivision temporal en horas, minutos, segundos y
frames. El numero de frames por segundo se especifica segun el formato SMPTE usado.
Formato SMPTE Frames/segundo
Usado en
0
24
Cine
1
25
Video Europeo (Sistema PAL)
2
30 (non drop)
Audio
3
29,97 (30 drop) Video USA (Sistema NTSC)
NOTA: El formato 3 de SMPTE es un poco mas complejo que los otros, pues no se trata de un numero entero
de frames por segundo. Lo que se hace es contar 30 frames pero colarnos (drop) los dos primeros frames de
cada minuto excepto si el minuto es multiple de 10 que no nos saltamos ninguno. Esto da una media de 29.97
frames/minuto.
Para formar una trama MTC completa utilizamos de 8 mensajes MTC (F1h). Se envia una trama completa cada
dos frames, por tanto, un mensaje cada cuarto de frame. El byte de datos del mensaje MTC tiene el formato
0nnnxxxx donde:
nnn
Significado de xxxx
0 4 bits bajos de Frames
1 4 bits altos de Frames
2 4 bits bajos de Segundos
3 4 bits altos de Segundos
4 4 bits bajos de Minutos
5 4 bits altos de Minutos
6 4 bits bajos de Horas
7 Bit alto de Horas y Formato SMPTE utilizado
Vemos que necesitamos los ocho mensajes para codificar una posicion SMPTE. Si el MTC va hacia adelante,
los mensajes se envian de 0 a 7. Si va hacia atras, los mensajes se envian en orden inverso. Se supone que los
dos frames ocurren exactamente en el mensaje 0 y 4.
Tambien se puede especificar rapidamente el MTC con un solo mensaje SysEx Universal RealTime. Esto tiene
la aplicacion de hacer saltar rapidamente hacia atras o hacia adelante a un dispositivo.
Mensaje de especificacion rapida de MTC
0xF0
0x7F
[dd]
0x01
0x01
[hr]
[mn]
[se]
[fr]
0xF7
Tambien se pueden especificar bits de usuario de SMPTE. Algunos dispositivos SMPTE los utilizan para
propositos propios. En principio, estan pensados para almacenar 8 digitos decimales que podrian tener el
contador de vueltas en una cinta, por ejemplo.
Mensaje de especificacion de bits de usuario
0xF0
0x7F
[dd]
0x01
0x02
[u1]
[u2]
[u3]
[u4]
[u5]
[u6]
[u7]
[u8]
[u9]
0xF7
Los bits 'i' son Flags y los otros son datos que estan pensados para representar digitos decimales por eso los
cuatro bits de arriba estan a 0: para representar un digito decimal de 0 a 9 solo hace falta 4 bits.
0xF0
0x7E
[dd]
0x06
0x01
0xF7
Este mensaje se puede utilizar tanto para extraerlas como para cambiarlas dependiendo de quien lo envie.
El valor de Checksum se calcula haciendo la XOR de todos los bytes de datos hasta antes del propio checksum.
Mensaje de cambio de afinacion de voces concretas:
0xF0
0x7F
[dd]
0x08
0x02
[pp]
[nn]
[data]
0xF7
Hay que tener en cuenta que en este mensaje es necesario indicar la voz a la que pertenece cada dato de
afinacion. En los mensajes de volcado no era necesario pues se enviaba toda la tabla ordenada.