Anda di halaman 1dari 27

Musical Instruments Digital Interface (MIDI)

ndice

0. Introduccin al MIDI
1. Especificacin MIDI
o 1.1. Hardware de conexin
o 1.2. Conceptos Bsicos
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. Visin 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 armonizadores
o 2.7. Generador de sonidos sintetizados (sintetizador)
o 2.8. Generador de sonidos basado en grabaciones (sampler)
o 2.9. Caja THRU
o 2.10. Filtro MIDI
o 2.11. Canalizador MIDI
o 2.12. Monitor MIDI
o 2.13. Multiprocesador
3. General MIDI
o 3.1. Introduccin
o 3.2. Instrumentos General MIDI
o 3.3. Kit de percusin General MIDI
o 3.4. Controles General MIDI
o 3.5. Recomendaciones para los sistemas General MIDI
4. Archivos Standard MIDI (SMF)
o 4.1. Visin general
o 4.2. Chunk de cabecera
o 4.3. Chunk de pista
o 4.4. Metaeventos
5. Ampliaciones de MIDI 1.0
Bibliografa, Links y Referencias

0. Introduccin al MIDI
MIDI es un protocolo de comunicacin digital entre instrumentos musicales que se empez a usar
en los 70 y que ya hace tiempo que esta consolidado como la interfaz entre instrumentos por
excelencia.
Lo que se enva por MIDI no es el sonido que producen los instrumentos, sino los eventos: Cuando
se pulsa una nota, cuando se vara un control... Permite sincronizar y secuenciar instrumentos,
almacenar una interpretacin para su posterior edicin y reproduccin...
La ventaja del MIDI es que es un estndar muy establecido y que la mayora de aparatos musicales
tienen algn tipo de interfaz MIDI. Pero, esta es, al parecer, su nica ventaja, pues, en todos los
sentidos, el MIDI limita por anticuado: polifona, nmero de aparatos, conectividad, longitud del
cableado, ancho de banda... Esto provoca, a menudo, que cada fabricante establezca su propia
ampliacin del estndar aunque, por suerte, mantienen, la compatibilidad con el MIDI bsico.

1. Especificaciones MIDI
1.1. Hardware de conexin
Interfaz serie: A 31,250 Kb/s (1% de tolerancia) asncrono 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 lgico y 1uA -> uno lgico. 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 mxima 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.

MIDI IN: Entran datos desde otros dispositivos.


MIDI OUT: Salen los datos del MIDI IN mas los que produce el dispositivo.
MIDI THRU: Sale una copia de los datos del MIDI IN sin aadir los que produce el
dispositivo. Solo los amplifica y corrige a modo de repetidor.

Configuraciones tpicas:

Cadena: Lo que enva el director lo interpretan todos pero lo que se toca en los otros no es
enviado a los dems.
Bucle: Los dispositivos envan informacin al director y este la distribuye posteriormente.
Se utiliza mucho en composicin cuando el director es, por ejemplo, un ordenador que
almacena lo que interpreta un instrumento, y, despus de editarlo, se devuelve al
instrumento para escuchar el reculado.
Estrella: En cadenas muy largas, se suelen producir errores de comunicacin y retardos.
Un director, con ms de una salida, que enva mensajes por cada una de ellas a un
dispositivo diferente reduce la longitud de las cadenas.
Hbridos Se pueden combinar hasta la saciedad. Cada situacin tiene su configuracin
apropiada.

1.2. Conceptos bsicos


Canal MIDI: Un canal MIDI sirve para direccionar los mensajes que se envan a un instrumento o
a otro. El estndar MIDI utiliza 16 canales.
Canales propios de un instrumento: Canales a los que hace caso.
Canal bsico de un instrumento: Canal por el que recibe los mensajes de modo (Configuracin).
Voces de un instrumento: Elementos de generacin de sonido de los que consta el dispositivo.
P.ej: Las notas son las voces de un sintetizador pero en el caso de una caja de ritmos las voces
serian cada uno de los elementos de percusin.
Notas: Cuando una voz se corresponde a una nota, se suele asociar el Do medio al valor 60. Se
considera el rango 0-127 con una resolucin de un semitono lo que da una amplitud de 10 octavas
que no todos los dispositivos alcanzan. Cuando esto sucede, se ignoran o se trasladan a otra octava.
Pulsacin o velocidad: Es la fuerza o velocidad con que se pulsa, mantiene o suelta una voz. Se
suele ponderar en escala logartmica aunque no hay fijado un estndar. 0 es pulsacin mnima
mientras que 127 es la mxima. En ausencia de esta caracterstica se enva un 64.

Control: Es un parmetro controlable de un sintetizador como el volumen, la afinacin... Existen


de dos tipos de controles: continuos y conmutados. Suelen equivaler al accionamiento de un
interruptor, un potencimetro, o un pedal.
Control continuo: Tienen una gama de valores posibles como el volumen, ataque y sostenimiento
de nota... La especificacin MIDI permite que sean de 7 bits (0-127) o de 14 bits (0-16383)
aunque, en realidad, se consideran todos de 14 bits, lo que pasa es que, como se modifican los
bytes alto y bajo por separado, en distintos mensajes, cuando tenemos uno de 7 bits solo
modificamos la parte alta y la parte baja no se utiliza.
Control conmutado: Los conmutadores son controles que solo tienen dos posiciones que suelen
ser ON (127) y OFF (0). Cualquier otro valor se ignora.

1.3. Tipos de estados.


Por el cable MIDI circulan dos tipos de bytes:
Bytes de estado: Tienen el MSB (Most Significant Bit) a uno. Son los que indican el tipo de
mensaje que se va a enviar.
Bytes de datos: Tienen el MSB a cero. Contienen los parmetros del comando/estado indicado en
el byte de estado.
El estado de un dispositivo MIDI determina de qu manera entender los siguientes bytes de datos
que reciba. Cada estado se alcanza al recibir un byte de estado y se mantiene hasta recibir otro byte
de estado que no sea de tiempo real. Los mensajes de tiempo real interrumpen el estado pero no lo
cambian.
Estados de ejecucin: Solo valido para mensajes de canal (voz y modo). No es necesario reenviar
el byte de estado si es el mismo. Los mensajes cuyos grupos de bytes de datos no lleguen
completos se ignoraran.
Estados no implementados: Se establece cuando llega un byte de estado de un comando, que,
aunque pertenezca al protocolo MIDI, el instrumento no interpreta. El protocolo MIDI propone
que se ignore dicho byte y los posteriores bytes de datos.
Estados indefinidos: Bytes de estado que no existen en el protocolo MIDI. Si se envan es debido
a un error (apagado o encendido, ruido...) El protocolo MIDI propone que se ignore dicho byte y
los posteriores bytes de datos.

1.4. Tipos de mensaje.


Mensajes de canal: Los que van dirigidos a un canal especifico. Dicho canal se indica en los 4
bits bajos del byte de estado y en los 4 altos se indica el comando/estado.

De voz: Contienen lo que se toca por un canal.

De modo: Se envan por el canal bsico del instrumento y son los que definen la respuesta
a los mensajes de voz.

Mensajes de sistema: Son los que no se ligan a un canal. Los 4 bits altos de byte de estado estn a
uno y los bajos indican el comando.

Comunes: Dirigidos a todos los canales MIDI.


De tiempo real: Tambin van dirigidos a todos los canales pero que interrumpe
momentneamente el ciclo de comunicacin. (Son mensajes urgentes)
Exclusivos: Comandos especficos de un instrumento. Fijados por el fabricante del mismo
cuyo ID encabeza los bytes de datos.

1.5. Mensajes de modo de canal.


Estado de cambio de modo: En realidad es el estado de cambio de control 1011nnnn donde nnnn
indica el canal bsico al que afecta. Todas las notas que se estn reproduciendo en el canal se
paran.
Modo Omni On: El instrumento puede recibir los mensajes de voz por cualquiera de los canales
aunque
no
sean
suyos.
OMNI ON: 1011nnnn 01111101 00000000
Modo Omni Off: Se desactiva. Solo hace caso a los mensajes de los canales propios.
OMNI OFF: 1011nnnn 01111100 00000000
Modo Monofnico: En modo monofnico, 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 bsico.
Si uuuuuuu es cero sern los todos los que tenga el instrumento.
MONOFONICO: 1011nnnn 01111110 0uuuuuuu
Modo Polifnico: Cada canal puede controlar ms de una voz simultneamente.
POLIFONICO: 1011nnnn 01111111 00000000
Desactivar todas las notas: Los cuatro anteriores tambin lo hacen pero este permite hacerlo sin
necesidad
de
conocer
el
modo
de
operacin
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 funcin asignada posteriormente al estndar. Lo que hace es
inicializar
los
controles
como
el
volumen
y
el
pitch.
REAJUSTE CONTROLES: 1011nnnn 01111001 00000000

1.6. Mensajes de voces de canal.


Estado Desactivacin de voz: Indica que se desactiva una voz (deja de sonar una nota)
El byte de estado es 1000nnnn y se sirve de dos bytes de datos. El primero indica la voz que se
desactiva y el segundo la velocidad o fuerza de pulsacin con que lo hace.
Estado Activacin de voz: Indica que se activa una voz (empieza a sonar una nota)
El byte de estado es 1001nnnn y se sirve de dos bytes de datos. El primero indica la voz que se
activa y el segundo la velocidad o fuerza de pulsacin con que lo hace, igual que en el de
desactivacin. Una activacin de velocidad 0 es equivalente a una desactivacin.
Estado Pulsacin de teclado polifnico: Indica una variacin de la pulsacin de la voz.
El byte de estado es 1010nnnn y comparte el formato que usan Activacin y Desactivacin para
los bytes de datos.
Estado Cambio de control (1011nnnn): Indica un cambio en el valor de un control. Hace servir
dos bytes de datos: El primero indica el control que se desea modificar y el segundo el nuevo valor
para dicho control. La especificacin MIDI solo determina el tipo de los controles pero no
restringe el control en concreto al que corresponde cada nmero.

000-031 Controles continuos (partes altas)


032-063 Controles continuos (partes bajas de los anteriores)
064-095 Controles conmutados
096-120 No definidos en MIDI
121-127 No son controles sino los mensajes de modo de canal explicados anteriormente.

Estado Cambio de programa (1100nnnn): Solo necesita un byte de datos que indica un
programa del 0 al 127.
Estado Presin de canal (1101nnnn): Es similar al de Pulsacin de teclado polifnico pero afecta
a todas las notas del canal especificado. Por lo tanto solo requiere un byte de datos, el de presin.
Estado Modificacin 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 variacin del pitch se selecciona en el receptor.

1.7. Mensajes comunes de sistema


Mensaje de trama temporal MIDI (11110001): Lleva un solo byte de datos 0nnnxxxx donde nnn
indica el tipo de codificacin y xxxx el valor. Para mas informacin sobre los cdigos temporales
se aconseja consultar la bibliografa.
Mensaje de posicin de cancin (11110010): Determina con dos bytes de datos cual es la
posicin actual de la cancin en golpes de ritmo MIDI (un golpe de ritmo cada seis pulsos de
reloj). El primero es el menos significativo y el segundo el mas significativo.

Mensaje de seleccin de cancin (11110011): Un solo byte de datos indica el nmero de cancin
que ser interpretada una vez llegue el mensaje de tiempo real de inicio.
Mensaje de requerimiento de entonacin (11110110): Lo utilizan los sintetizadores analgicos
(que tiempos aquellos...) para sintonizar sus osciladores. No llego a ver claro su funcin, pero si
algn DIA te las tienes que ver con un analgico y te enteras, no estara de ms que me lo
explicases.
Mensaje de fin de exclusivo (11110111): Se utiliza para finalizar los mensajes de sistema
exclusivos aunque dicha funcin la puede realizar cualquier otro byte de estado que no sea de
tiempo real. No tiene bytes de datos.
NB: Los mensajes comunes de sistema 11110100 y 11110101 son estados no definidos en la norma
hasta una futura ampliacin.

1.8. Mensajes de sistema de tiempo real.


Reloj de temporizacin (11111000): El sistema, si lo enva, lo hace con una candencia de 24 por
cuarto de nota.
Inicio (11111010): El sistema lo enva al iniciar una pieza. Generalmente es el instrumento maestro
quien lo hace.
Continuacin (11111011): El sistema lo enva cuando quiere continuar tocando una pieza que ha
parado. Se empezara a tocar en el siguiente pulso de reloj.
Parada (11111100): El sistema lo enva para detener la secuencia.
Espera activa (11111110): El sistema lo enva cada 300 milisegundos. Los sistemas MIDI no estn
obligados a hacerlo, ni receptor ni transmisor. En el caso de que un receptor reconozca dicho
mensaje, una vez que reciba uno, si antes de 300 milisegundos no ha recibido otro mensaje de
cualquier tipo, desactivara las voces y volver a modo de operacin normal. Si un transmisor lo
enva, lo tendr de hacer cada 300 milisegundos de inactividad si no quiere que algunos receptores
se descuelguen.
Reset del sistema (11111111): Resetea todos los instrumentos que lo reciben.
NB: Los mensajes de tiempo real 11111001 y 11111101 son estados no definidos en la norma hasta
una futura ampliacin.

1.9. Mensajes de sistema exclusivos


Estos mensajes sirven para ampliar los estndares MIDI para un instrumento en concreto.
Empiezan con el byte de estado 11110000. Los bytes de datos que siguen identifican el fabricante.
A partir de hache el formato depende de el fabricante, por eso es esencial que si el fabricante no es
el correcto, el mensaje se ignore.
Los mensajes exclusivos de sistema van dirigidos a todos los canales por lo que si hay dos
instrumentos del mismo tipo, ambos lo recibirn. Por esta razn, generalmente se incluye en el
formato de fabricante algn tipo de direccionado basado en canal MIDI o no.
El estado acaba cuando entra un mensaje de fin de exclusivo (11110111) o cualquier otro byte de
estado que no sea de tiempo real.

1.10. Controles MIDI


CONTROLES ESPECIFICADOS (HEX)
Ajuste MSB
00 Seleccin de banco
01
Modulation
Wheel
02
Breath
controller
04
Foot
Pedal
05
Portamento
Time
06
Data
Entry
07
Volume
08
Balance
0A
Pan
position
0B
Expression
0C
Effect
Control
1
0D Effect Control 2 (coarse)
10
General
Purpose
11
General
Purpose
12
General
Purpose
13 General Purpose Slider 4

(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
(coarse)
Slider
Slider
Slider

1
2
3

Ajuste LSB
20
21
22
24
25

Bank
Select
Modulation
Wheel
Breath
controller
Foot
Pedal
Portamento
Time

(fine)
(fine)
(fine)
(fine)
(fine)

26
Data
Entry
27
Volume
28
Balance
2A
Pan
position
2B
Expression
2C
Effect
Control
1
2D Effect Control 2 (fine)

(fine)
(fine)
(fine)
(fine)
(fine)
(fine)

Interruptores
40
Hold
Pedal
41
Portamento
42
Sustenuto
Pedal
43
Soft
Pedal
44
Legato
Pedal
45 Hold 2 Pedal (on/off)

(on/off)
(on/off)
(on/off)
(on/off)
(on/off)

50 General Purpose Button 1 (on/off)


51 General Purpose Button 2 (on/off)
52 General Purpose Button 3 (on/off)
53 General Purpose Button 4 (on/off)
Generacin 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
5C
Tremulo
5D
Chorus
5E
Celeste
5F Phaser Level

Level
Level
Level
Level

Parmetros
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

1.10. Parmetros MIDI


Los parmetros son una puerta abierta al lmite de los 128 controles MIDI. Se agrupan en dos
grupos, los registrados, que dependen de las especificaciones, y los no registrados disponibles para
los implementadores. Permiten asociar los nmeros del 0 al 63.383 a cualquier parmetro de un
aparato y controlarlo va MIDI.
Para hacerlo primero hemos de indicar la parte alta y la parte baja del nmero del parmetro con
los mensajes de control adecuados: 62h y 63h para los no registrados o 64h y 65h para los
registrados. Una vez seleccionado el parmetro, utilizamos otros controles para incrementar el
parmetro una cantidad (61h), decrementarlo (60h), fijar los 7 bits ms significativos (06h) o los
menos significativos (26h).
Controles Para Cambiar Parmetros (HEX)
06
26
60
61
62
63
64
65

Ajuste brusco del parmetro (MSB)


Ajuste fino del parametro (LSB)
Decrementa el parmetro en una cantidad
Incrementa el parmetro en una cantidad
Indica un parmetro no registrado a ajustar (LSB)
Indica un parmetro no registrado a ajustar (MSB)
Indica un parmetro registrado a ajustar (LSB)
Indica un parmetro registrado a ajustar (MSB)

2. Aparatos MIDI
2.1. Visin general
A parte de los instrumentos, los generadores de sonido y los secuenciadores, existen otros
elementos ms discretos, pero igual de tiles en una configuracin MIDI, gracias a los cuales
podemos sacarle un mayor partido.
Hoy en da muchos de los elementos aqu citados, suelen estar acoplados entre si en una sola
unidad. El ejemplo mas claro de esto es el ordenador que, gracias a su versatilidad, prcticamente,
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:

Generador MIDI: Son las fuentes de mensajes MIDI.


Consumidor MIDI: Transforma el mensaje MIDI en sonido (generador de sonido) o otro
tipo de seal (VideoMIDI, psicodlicos...)
Procesador MIDI: Reciben MIDI y emiten MIDI haciendo algn tipo de proceso.

2.2. Teclado Mudo


Protocolos como el MIDI han permitido que se pueda separar el instrumento en s, y el aparato que
genera el sonido, de tal forma un teclado mudo, por ejemplo, tan solo enviara mensajes MIDI que
directamente a otro modulo generador de sonidos que es el que suena realmente.
Un generador de sonidos puede ser un sintetizador, un sampler, un ordenador... cualquier elemento
MIDI que genere sonido.
Es muy importante el grado de configurabilidad de un teclado mudo. Lo ms normal es que
ofrezca sensibilidad a la expresin (velocidad de pulsacin) y que ofrezca la posibilidad de enviar
mensajes de control mediante uno o varios pedales o palancas incorporadas.

2.3. Pedales y palancas MIDI


Los mensajes de control, en general, necesitan otro tipo de entrada por parte del intrprete que no
puede ser por teclado. Para ello, no hay nada mejor que un pedal que deje las manos libres.
Los pedales MIDI son unos pedales especiales que envan un determinado mensaje de control
(configurable o no) al teclado o directamente a la cadena MIDI. Los hay, tambin, que modifican
el pitch, la pulsacin...
Las palancas o ruedas suelen estar incorporadas en los teclados. La funcin es parecida pero ahora
es el teclado mismo quien genera la mensajera MIDI. Las ruedas casi siempre hacen funciones de
pitch pero tambin las hay configurables.
Tambin hay una serie de pedales que no son MIDI, que dependen del teclado. Estos pedales no
envan al teclado mensajes MIDI, pero sirven para modificar la interpretacin del teclado y, en
consecuencia, su salida MIDI, de forma similar a las ruedas.

2.4. Secuenciador
Un secuenciador permite generar secuencias MIDI en fro para reproducirlas despus de forma
sincronizada. Por lo general, el aparato ofrece la posibilidad de crear la secuencia con un mtodo
que consiste en llenar los espacios de un comps con determinadas notas. No tenemos, pues, que
interpretarla con un instrumento.
Esta claro que si nos ceimos a los 16 espacios que suele tener el secuenciador y a poner o no una
nota, se limita mucho la expresividad de las secuencias por lo que, adems se nos permite variar
varios parmetros 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.
Tambin existen los llamados DNA. Un DNA es una serie de parmetros de retardo, nfasis... que
se recogen a partir de un intrprete real y que se aplican a la secuencia en cuestin. Dan mucha
mas personalidad dado que cada intrprete y cada estilo tienen su propio DNA. Tan solo tengo
noticias de DNA's aplicados a las secuencias de percusin, pero pronto se aplicaran tambin a otro
tipo de secuencias.

2.5. Lanzadores
Un lanzador es un modulo que almacena secuencias MIDI y que, a una seal de el interprete, lanza
una o otra secuencia a la cadena. El modulo que hace de lanzador, suele permitir guardar las
secuencias en un soporte no voltil.
La funcin de lanzador de secuencias suele estar en el teclado o en el ordenador.

2.6. Arpegiadores y armonizadores


El arpegiador es un modulo que a partir de un acorde y un patrn, genera la secuencia MIDI para
el correspondiente arpegio.
El armonizador hace lo propio agregando, a la secuencia MIDI, las notas de acompaamiento que
armonizan con lo que le entra.
Estos dos mdulos suelen estar incluidos en teclados, secuenciadores y lanzadores.
En cuanto a dispositivos originadores de mensajes MIDI la variedad de funciones no va mucho
mas all de los explicado y de los clsicos instrumentos MIDI: Guitarras, Saxofones, Cajas de
ritmos...

2.7. Generador de sonidos sintetizados (sintetizador)


En su mayor parte, los consumidores de mensajes MIDI son generadores de sonido aunque bien
pueden ser tan variados (psicodlicos, autmatas MIDI, transcriptores de partituras... imaginacin)
Existen dos grandes familias de generadores de sonidos: Los sintetizadores y los samplers.
Un sonido sintetizado es aquel que se produce a partir del procesado analgico o digital de una o
varias seales simples. Las seales simples que mas se utilizan son las ondas triangulares, de
dientes de sierra, sinusoidales, cuadradas... Los procesos mas extendidos son la modulacin, el
filtrado frecuencial, la distorsin, las envolventes...
La mayora de procesos (digitales o analgicos) dependen de una serie de parmetros que se
modifican para obtener un sonido u otro. Hay un tutorial especialmente dedicado a explicar este
tipo de generacin de sonidos.
Los sintetizadores suelen tener un banco de sonidos donde guardan los parmetros de cada uno, y,
por lo general, permiten que se programen nuevos.

2.8. Generador de sonidos basado en grabaciones (sampler)


Este tipo de generador no parte de una onda simple sino de una onda grabada. Necesitan mucha
mas memoria para almacenar los sonidos pero se obtienen sonidos bastante mas verosmiles.
Los samplers tambin aplican filtros, envolventes y otros procesos a la seal para dar mayor
expresividad al sonido.
Se puede encontrar ms informacin sobre las tcnicas sampleado en los otros tutoriales.
Las muestras de sonido son siempre digitales pero los procesos tambin pueden ser digitales o
analgicos.

2.9. Caja THRU


Una caja THRU es un simple aparato que tiene una entrada IN y n salidas THRU. Sencillamente
duplica la entrada en las salidas, dividiendo la cadena MIDI en n cadenas (configuracin en
estrella). De esta manera se pueden evitar cadenas excesivamente largas y los problemas que estas
comportan.
En cadenas largas se produce, por ejemplo, el problema del retardo debido al tiempo que tarda en
llegar un mensaje del primer al ltimo elemento.
Tambin existe el problema de la degradacin. Cada vez que la seal pasa por un elemento las
transiciones de la seal se hacen mas tenues, y, al final, acaban siendo indistinguibles.

2.10. Filtro MIDI


El filtro MIDI es un aparato que elimina de forma selectiva mensajes MIDI. Tiene una entrada IN
y una salida OUT. Los hay especficos o programables segn se pueda o no elegir el tipo de
mensaje a filtrar.
Hay que tener cuidado al disear filtros, pues, si simplemente se eliminan los mensajes a filtrar,
cabe la posibilidad que el resto de mensajes queden inconsistentes.
Un filtro permite reducir el nivel de mensajes que circulan por la cadena para que no se produzca
saturacin. La saturacin es el hecho de que un puerto MIDI no pueda procesar todos los
mensajes que le llegan ms los que genera.
Los filtros son tambin una opcin muy buena para controlar los instrumentos que solo pueden
funcionar en modo Omni para que formen parte de una cadena. Los instrumentos Omni no hacen
seleccin de canal por lo que no podemos direccionar mensajes solo a un instrumento, sin que el
Omni tambin lo toque, pero si introducimos antes del instrumento Omni un filtro para los
mensajes de un canal determinado, podra funcionar correctamente.

2.11. Canalizador MIDI


La funcin del canalizador es transportar los mensajes dirigidos a cierto canal hacia otro, pues no
siempre podemos hacer coincidir el canal de salida de un aparato y el de entrada de otro.

2.12. Monitor MIDI


Sirve para visualizar el tipo de mensajes que circulan por un punto en la cadena. Generalmente,
suele constar de una serie de LED's que se iluminan cuando estos mensajes pasan.

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 da 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 secuencia 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, a veces, es aconsejable dedicar
uno de estos pequeos procesadores exclusivamente al proceso MIDI.

3. General MIDI
3.1. Introduccin
General MIDI es un estndar, aadido a MIDI, que intenta garantizar que la msica 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 polifona mnima de 24 voces cada uno.
El canal 10 reservado para instrumentos de percusin y el resto para los meldicos.
Los nmeros de programa asociados a un conjunto estndar de 128 instrumentos.
Un kit de percusin estndar para usar en el canal 10.
Reconocer como mnimo un subconjunto de controles de los controles recomendados.
Ha de ser sensible a la velocidad.
Recorrido de la rueda picht bend de +/- 2 semitonos.

3.2. Instrumentos General MIDI


El kit de instrumentos que define General MIDI se compone de 16 grupos con 8 instrumentos cada
uno. Los grupos definidos son los siguientes:
Piano
00 Acoustic Grand Piano
01 Bright Acoustic. G.Piano
02 Electric Grand Piano
03 Honky-tonk Piano

percusin Cromtica
04 Rhodes Piano
05 Chorused Piano
06 Harpsichord
07 Clavinet

rganos
10 Hammond Organ
11 Percussive Organ
12
Rock
Organ
13 Church Organ

14 Reed Organ
15
Accordion
16
Harmonica
17 Tango Accordion

Lengetas

18 Acoustic Guitar1
19 Acoustic Guitar2
1A Electric Guitar1
1B Electric Guitar2

1C Electric Guitar3
1D Overdrive Guitar
1E Distortion Guitar
1F Guitar Harmonics

Cuerda
24 Slap Bass 1 28
Violin
25 Slap Bass 2 29
Viola
26 Synth Bass 1 2A
Cello
27 Synth Bass 2
2B Contrabass

Ensemble
30 String Ensemble1
31 String Ensemble2
32
SynthStrings
1
33 SynthStrings 2

0C
Marimba
0D
Xylophone
0E Tubular Bells
0F Dulcimer

Guitarra

Bajo
20
Acoustic
Bass
21 Electric Bass 1
22 Electric Bass 2
23 Fretless Bass

08
Celesta
09 Glockenspiel
0A Music box
0B Vibraphone

2C Tremolo Strings
2D Pizzicato StringS
2E Orchestral Harp
2F Timpani

Metales
34 Choir Aahs
35 Voice Oohs
36 Synth Voice
37 Orchestra Hit

38
Trumpet
39
Trombone
3A
Tubah
3B Muted Trumpet
Tubos

3C French Horn
3D Brass Section
3E Synth Brass 1
3F Synth Brass 2

40
Soprano
41
Alto
42
Tenor
43 Baritone Sax

Sax
Sax
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

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
64 FX 5 brightness
65 FX 6 goblins
66 FX 7 echoes
67 FX 8 sci-fi

percusin
70
Tinkle
Bell
71
Agogo13
72
Steel
Drums
73 Woodblock

4C Bottle Blow
4D Shakuhachi
4E
Whistle
4F Ocarina

Sintetizador Acompaamiento

Sintetizador Efectos
60
FX
1
rain
61 FX 2 soundtrack
62
FX
3
crystal
63 FX 4 atmosphere

48
Piccolo
49
Flute13
4A
Recorder
4B Pan Flute

68
Sitar4
69
Banjo5
6A
Shamisen
6B Kotoh7

6C
Kalimba
6D
Bagpipe
6E
Fiddlet
6F Shanai0

Efectos
74 Taiko Drum
75 Melodic Tom
76 Synth Drum
77 Reverse Cymbal

78 Guitar FretNoise
79 Breath Noise
7A
Seashore
7B Bird Tweet

7C Telephone Ring
7D
Helicopter
7E
Applause
7F Gunshot

3.3. Kit de percusin General MIDI


El kit de percusin define los elementos sonoros que irn asociados a algunas de las voces que se
tocan por el canal 10.
Voz

Sonido Asociado

Voz

Sonido Asociado

35

Acoustic Bass Drum

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

Low Floor Tom

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

Low Wood Block

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

3.4. Controles General MIDI


Es necesario, como mnimo que un dispositivo General MIDI reconozca los siguientes controles:
# Control Descripcin

Comentarios

Modulation

usually hard-wired to control LFO amount, ie, vibrato),

Main Volume

10

Pan

11

Expression

64

Sustain

121

Reset All Controllers

123

All Notes Off

3.5. Recomendaciones para los sistemas General MIDI


Lo que siguen son recomendaciones, no requisitos.
Parmetros registrados MIDI

Pitch Wheel Bend Range (0),


Fine Tuning (1),
Coarse Tuning (2).

Si se incluyen los parmetros de afinacin, la afinacin inicial deber ser la referencia estndar:
440 Hz para el La medio.
Recomendaciones sobre mensajes exclusivos de sistema:
General MIDI On:
0xF0
0x7E
[dd]
0x09
0x01
0xF7

Byte de Estado (SysEX)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: General MIDI Message
Mensaje: General MIDI On
Fin de SysEx

General MIDI Off:

0xF0
0x7E
[dd]
0x09
0x02
0xF7

Byte de Estado (SysEX)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: General MIDI Message
Mensaje: General MIDI Off
Fin de SysEx

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.

4. Archivos estndar MIDI (SMF)


4.1. Visin general
Los archivos SMF (Standard MIDI Files) se utilizan para almacenar secuencias MIDI y casi
siempre llevan la extensin .MID. Un archivo SMF puede contener varias secuencias MIDI, cada
una, en una pista o track.
El formato de estos archivos los distribuye en chunks. El primer chunk es el de cabecera, o header
chunk, y el resto son chunks de pistas, o track chunks.
Cada chunk va precedido por cuatro bytes de identificacin y cuatro ms que indican la longitud
en bytes del resto del chunk. Despus viene el contenido.

4.2. Chunk de cabecera


El identificador del chunk de cabecera es 'MThd'. La longitud de este chunk siempre es la misma,
6 bytes. Los dos primeros bytes determinan el tipo de fichero.

0 Pista nica.
1 Pista Mltiple sncrona. Todas las pistas empiezan al mismo tiempo y llevan el mismo
reloj.
2 Pista Mltiple asncrona. Cada pista puede empezar cuando quiera y adems tiene un
clock propio.

Los siguientes dos bytes codifican el numero de pistas del fichero y los dos ltimos el numero de
tiempos de delta por cuarto de nota cuyo significado se vera mas adelante.

4.3. Chunk de pista

Los chunks de pista tienen el identificador 'MTrk'. Una vez indicada la longitud del chunk vienen
los eventos MIDI. Cada evento MIDI viene precedido por un tiempo de delta que tiene que pasar
antes de enviarlo.
Dicho tiempo de delta se especifica de la siguiente manera: Se divide el nmero de deltas en
palabras de 7 bits. Se completa cada palabra con el bit 7 (el mas significativo) para tener bytes
completos. El bit 7 ser 1 en todas las palabras menos en la palabra menos significativa que valdr
0. En el fichero las palabras se colocan de mas a menos significativas de tal forma que, cuando
leamos la menos significativa (bit 7=0), sabemos que ha acabado la delta y empieza un evento. El
ultimo evento de cada track ha de ser el (meta) evento 2Fh 00h.

4.4. Metaeventos
Los metaeventos son eventos utilizados en los SMF que no estn definidos en el estndar 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.
Aqu tenis algunos de los ms utilizados:
Hex Binary

Data

Description

00

00000000 nn ssss

Nmero 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 ...

Informacin de Copyright.
nn tt=same as text event

03

00000011 nn tt

Nombre del Track.


nn tt=same as text event

04

00000100 nn tt

Nombre del Instrumento del Track.


nn tt=same as text event

05

00000101 nn tt

Letra de la cancin.
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

Ajuste del tempo


tttttt=microseconds/quarter note

58

01011000 04 nn dd cc bb Time Signature


nn=numerator of time sig.
dd=denominator of time sig. 2=quarter, 3=eighth, etc.
cc=number of ticks in metronome click
bb=number of 32nd notes to the quarter note

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

Informacin especfica del secuenciador


xx=number of bytes to be sent
dd=data

5. Ampliaciones del MIDI


5.1. El tiempo en MIDI
Existen toda una serie de funciones de control sobre el tiempo, y de sincronizacin de los relojes
de los dispositivos conectados a una cadena MIDI.
Por un lado existe el mensaje de reloj de sistema o metrnomo (F7h). Es un mensaje de tiempo
real que, si se enva, se hace con una candencia continua de 24 veces cada cuarto de nota negra (o
pulsacin). Si variamos el tempo, se vara dicha candencia.
Tambin tenemos el mensaje de puntero de cancin (F2h). Es un mensaje comn de sistema que
indica la posicin dentro de la cancin. Dicha posicin, que se viene indicada en dos bytes de
datos, es un nmero que se incrementa cada 6 tic de reloj y, por tanto, si los tic de reloj eran 24 por
negra, cada 16 unidades incrementadas del puntero corresponden a una nota negra. Una cancin
que utilice el puntero de cancin podra tener una duracin mxima de 1024 tiempos (negras).
Tanto el reloj como el puntero de cancin son tiles para controlar y sincronizar elementos MIDI
que tengan que adaptarse al tempo del resto del sistema como un arpegiador o una lnea de bajo o
percusin.
Paralelamente, tenemos el mensaje de trama temporal MIDI o MIDI Time Code (F1h). Es un
mensaje comn de sistema que determina la posicin actual en la cancin pero utilizando una
codificacin SMPTE (Society of Motion Picture and Television Engineers).
La codificacin SMPTE es un estndar comercial de codificacin 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 comps, una nota o el tempo. SMPTE establece una subdivisin
temporal en horas, minutos, segundos y frames. El nmero de frames por segundo se especifica
segn el formato SMPTE usado.
Formato SMPTE
0
1
2
3

Frames/segundo Usado en
24
Cine
25
video Europeo (Sistema PAL)
30 (non drop)
Audio
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
nmero 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 mltiple 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 enva 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
2
3
4
5
6
7

4 bits altos de Frames


4 bits bajos de Segundos
4 bits altos de Segundos
4 bits bajos de Minutos
4 bits altos de Minutos
4 bits bajos de Horas
Bit alto de Horas y Formato SMPTE utilizado
Vemos que necesitamos los ocho mensajes para codificar una posicin SMPTE. Si el MTC va
hacia adelante, los mensajes se envan de 0 a 7. Si va hacia atrs, los mensajes se envan en orden
inverso. Se supone que los dos frames ocurren exactamente en el mensaje 0 y 4.
Tambin se puede especificar rpidamente el MTC con un solo mensaje SysEx Universal
RealTime. Esto tiene la aplicacin de hacer saltar rpidamente hacia atrs o hacia adelante a un
dispositivo.
Mensaje de especificacin rpida de MTC
0xF0
0x7F
[dd]
0x01
0x01
[hr]
[mn]
[se]
[fr]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: MIDI Time Code
Mensaje: Full Time Code Message
Horas y Formato SMPTE
Minutos
Segundos
Frames
Fin de SysEx

Tambin se pueden especificar bits de usuario de SMPTE. Algunos dispositivos SMPTE los
utilizan para propsitos propios. En principio, estn pensados para almacenar 8 dgitos decimales
que podran tener el contador de vueltas en una cinta, por ejemplo.
Mensaje de especificacin de bits de usuario
0xF0
0x7F
[dd]
0x01
0x02
[u1]
[u2]
[u3]
[u4]
[u5]
[u6]
[u7]
[u8]
[u9]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: MIDI Time Code
Mensaje: MIDI Time Code User Bits
0000aaaa
0000bbbb
0000cccc
0000dddd
0000eeee
0000ffff
0000gggg
0000hhhh
000000ii
Fin de SysEx

Los bits 'i' son Flags y los otros son datos que estn pensados para representar dgitos decimales
por eso los cuatro bits de arriba estn a 0: para representar un digito decimal de 0 a 9 solo hace
falta 4 bits.

5.2. Sample Dump Standard


La extensin SDS del MIDI esta pensada para que los dispositivos MIDI se intercambien samples
entre ellos cuando no tienen otra forma mas rpida de hacerlo, por que no hay una interfaz
adecuada como podra ser una interfaz SCSI.
SDS No esta pensada para usarse en medio de una interpretacin pues ocupa mucho del ancho de
banda. SDS esta pensado pues, para usarse en el momento anterior a dicha representacin, o
mediante un puerto MIDI alternativo.
La utilidad ms directa del volcado de samples, es aprovechar la memoria de un ordenador o de un
dispositivo de almacenaje independiente para que un instrumento, normalmente un sampler, pueda
ampliar su banco de instrumentos ms all de su propia memoria.
SDS, en conjuncin con los Standard MIDI Files, tambin sirve de estndar de almacenamiento de
samples. Tambin da la posibilidad de editar dichos instrumentos con un software adecuado.
SDS define protocolos para acordar el envo entre los dos extremos o bien enviarlo abiertamente
sin ningn tipo de acuerdo previo a toda la cadena MIDI.

5.3. MIDI General Information


Esta extensin sirve para obtener una serie de informacin sobre los dispositivos conectados a la
cadena MIDI. Se basa en dos mensajes exclusivos de sistemas universales (no propietarios):
Device Identity Request Message:
0xF0
0x7E
[dd]
0x06
0x01
0xF7

Byte de estado (SysEx)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: General Information
Mensaje: Requerimiento de Identidad
Fin de SysEx

Device Identity Reply Message:


0xF0
0x7E
[dd]
0x06
0x02
[id]
[fl]
[fm]
[ml]
[mm]
[ver]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: General Information
Mensaje: Respuesta de Requerimiento de Identidad
Identificador de Fabricante (1 o 3 Bytes)
Cdigo de Familia del dispositivo (LSB)
Cdigo de Familia del dispositivo (MSB)
Cdigo de Miembro de la familia (LSB)
Cdigo de Miembro de la familia (MSB)
Versin del Software (4 Bytes)
Fin de SysEx

5.4. MIDI Tuning Standard

Esta extensin permite acceder a la afinacin de cada una de las voces de cada programa de un
dispositivo MIDI. Una tabla de afinacin consiste en una lista de valores de afinacin para cada
voz MIDI de un programa.
La afinacin de cada voz se codifica con 3 bytes. Como son bytes de datos (7 bits tiles) tenemos
un margen de 21 bits por nota. El primero de los 3 bytes indica la nota por encima de la que se
afina, los dos bytes siguientes son un nmero positivo que subdividen el intervalo entre esa nota y
el siguiente semitono ms agudo en 214 divisiones. Tenemos una precisin tal que se nos permite
ajustar la afinacin 0'006125 centsimas de semitono.
Mensaje de requerimiento de volcado de las tablas de afinacin:
0xF0
0x7E
[dd]
0x08
0x00
[pp]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: MIDI Tuning Standard
Mensaje: Bulk Dump Request
Numero de programa que se quiere afinar
Fin de SysEx

Mensaje de volcado de tablas de afinacin:


0xF0
0x7E
[dd]
0x08
0x01
[pp]
[name]
[data]
[cc]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Non-Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: MIDI Tuning Standard
Mensaje: Bulk Dump
Numero de programa que se quiere afinar
Nombre del programa (16 caracteres ASCII no extendidos)
Datos de la tabla de afinacin
(128 notas * 3 bytes) [Tono Base]-[Parte alta]-[Parte baja]
Checksum
Fin de SysEx

Este mensaje se puede utilizar tanto para extraerlas como para cambiarlas dependiendo de quien lo
enve.
El valor de Checksum se calcula haciendo la XOR de todos los bytes de datos hasta antes del
propio checksum.
Mensaje de cambio de afinacin de voces concretas:
0xF0
0x7F
[dd]
0x08
0x02
[pp]
[nn]
[data]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: MIDI Tuning Standard
Mensaje: Note Change
Numero de programa que se quiere afinar
Numero de Notas a cambiar
Datos de la tabla de afinacin (+ voz a la que pertenecen)
(nn notas * 4 bytes) [Voz]-[Tono Base]-[Parte alta]-[Parte baja]
Fin de SysEx

Hay que tener en cuenta que en este mensaje es necesario indicar la voz a la que pertenece cada
dato de afinacin. En los mensajes de volcado no era necesario pues se enviaba toda la tabla
ordenada.

5.5. Otras ampliaciones MIDI


Notation Information
Los mensajes de notacin informan, en tiempo real, de las claves, las armaduras, las lneas de
comps... Su aplicacin es clara: la representacin grafica de partituras.
Utiliza el protocolo SysEx Universal RealTime 03h. Los dos siguientes mensajes cambian el tipo
de comps. El mensaje asncrono lo hace en el momento de recepcin y el otro se espera a que
acabe el comps actual.
Cambio asncrono de tipo de comps:
0xF0
Byte de estado (SysEx)
0x7F
Fabricante: Universal Real Time
[dd]
Identificador de dispositivo destino (0x7F para Broadcast)
0x03
Protocolo: Notation Information
0x02
Mensaje: Asyncron Signature Change
[ln]
Numero de Bytes que siguen (3 si no es una clave compuesta)
[nn]
Numerador de la clave
[dd]
Denominador de la clave ser la potencia de dos: 2dd
[qq]
Numero de 1/32 de nota notada en un cuarto de nota MIDI.
[parejas nn dd] Opcional para las compuestas
0xF7
Fin de SysEx

Cambio sncrono de tipo de comps:


0xF0
Byte de estado (SysEx)
0x7E
Fabricante: Universal Real Time
[dd]
Identificador de dispositivo destino (0x7F para Broadcast)
0x03
Protocolo: Notation Information
0x42
Mensaje: Syncron Signature Change
[ln]
Numero de Bytes que siguen (3 si no es una clave compuesta)
[nn]
Numerador de la clave
[dd]
Denominador de la clave ser la potencia de dos: 2dd
[qq]
Numero de 1/32 de nota notada en un cuarto de nota MIDI.
[parejas nn dd] Opcional para las compuestas
0xF7
Fin de SysEx

Barra de fin de compas:


0xF0
0x7F
[dd]
0x03
0x01
[lb]
[mb]
0xF7

Byte de estado (SysEx)


Fabricante: Universal Real Time
Identificador de dispositivo destino (0x7F para Broadcast)
Protocolo: Notation Information
Mensaje: Bar Marker
Numero de barra (LSB)
Numero de barra (MSB)
Fin de SysEx

El nmero de barra es un entero con signo positivo.

Real Time Cueing

Los 'cue' son puntos de inters que se insertan en la representacin. Los cues se colocan en
diversos puntos a lo largo del tiempo, por lo que van de la mano del MIDI Time Code. Consiste en
un conjunto de 14 mensajes que permiten posicionarlos para cualquier dispositivo compatible.
Utiliza el protocolo SysEx Universal RealTime 05h.
MIDI File Dumps
Es una extensin del protocolo que estandariza la forma de transmitir ficheros va MIDI. Las
aplicaciones ms directas son la transmisin de ficheros MIDI, samples en formato propietario (no
compatible con SDS) o cualquier tipo de informacin de configuracin. Cada fabricante
implementaba su forma de hacerlo por lo que se estableci, finalmente, este estndar.
Utiliza el protocolo SysEx Universal Non-RealTime 07h.
MIDI Show Control
Esta extensin pretende dar herramientas para controlar, de una forma estndar, equipo, que pese a
no ser musical, forme parte de una representacin: Luces, fuegos artificiales, aparatos de video,
maquinaria de escenario...
Utiliza el protocolo SysEx Universal RealTime 02h.
MIDI Machine Control
Es un protocolo de mensajes exclusivos de sistema universales para controlar sistemas de
produccin multimedia. Tiene bastantes vas de expansin futura, aunque actualmente solo
estandariza como controlar sistemas de audio y video.
Utiliza los protocolos SysEx Universal RealTime 06h (comandos) y SysEx Universal RealTime
07h (respuestas).

Bibliografa, Links y Referencias.


Este manual es una trascripcin ampliada de los apuntes que recog de las siguientes fuentes:

MIDI avanzado. Gua del usuario. R.A.Penfold


Ed.Ra-Ma
PCMANIA Nmeros 35-47
PC Games Programmer Encyclopedy
MIDI Manufacturers Association
MIDI Technical Fanatic's Brainwashing Center

Los amantes de la aventura encontraran ms informacin en:

MIDI Systems and Control Francis Rumsey


1990 Focal Press
MIDI and Sound Book for the Atari ST Bernd Enders and Wolfgang Klemme
1989 M&T Publishing, Inc.
X-MIDI Homepage
Para obtener las especificaciones MIDI (formato de ficheros, protocolo...) enva un e-mail
con la frase Get midispec package a listserv@auvm.american.edu.

Anda mungkin juga menyukai