Curso midi

37
Musical Instruments Digital Interface (MIDI) Índice 0. Introducción al MIDI 1. Especificación MIDI o 1.1. Hardware de conexión o 1.2. Conceptos Básicos 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. Visión 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. Introducción o 3.2. Instrumentos General MIDI o 3.3. Kit de percusión 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. Visión general

description

Curso de midi aplicaciones

Transcript of Curso midi

Cursillo de introduccin a la informtica musical: MIDI

Musical Instruments Digital Interface (MIDI)

ndice 0. Introduccin al MIDI

1. Especificacin MIDI

1.1. Hardware de conexin

1.2. Conceptos Bsicos

1.3. Tipos de estados

1.4. Tipos de mensajes

1.5. Mensajes de modo de canal

1.6. Mensajes de voces de canal

1.7. Mensajes de sistema comunes

1.8. Mensajes de sistema de tiempo real

1.9. Mensajes de sistema exclusivos

2. Aparatos MIDI

2.1. Visin general

2.2. Teclado Mudo

2.3. Pedales y palancas MIDI

2.4. Secuenciador

2.5. Lanzadores

2.6. Arpegiadores y armonizadores

2.7. Generador de sonidos sintetizados (sintetizador)

2.8. Generador de sonidos basado en grabaciones (sampler)

2.9. Caja THRU

2.10. Filtro MIDI

2.11. Canalizador MIDI

2.12. Monitor MIDI

2.13. Multiprocesador

3. General MIDI

3.1. Introduccin

3.2. Instrumentos General MIDI

3.3. Kit de percusin General MIDI

3.4. Controles General MIDI

3.5. Recomendaciones para los sistemas General MIDI

4. Archivos Standard MIDI (SMF)

4.1. Visin general

4.2. Chunk de cabecera

4.3. Chunk de pista

4.4. Metaeventos

5. Ampliaciones de MIDI 1.0

Bibliografa, Links y Referencias

0. Introduccin al MIDIMIDI 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 conexinInterfaz 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 bsicosCanal 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 (coarse)01 Modulation Wheel (coarse)02 Breath controller (coarse)04 Foot Pedal (coarse)05 Portamento Time (coarse)06 Data Entry (coarse)07 Volume (coarse)08 Balance (coarse)0A Pan position (coarse)0B Expression (coarse)0C Effect Control 1 (coarse)0D Effect Control 2 (coarse)

10 General Purpose Slider 111 General Purpose Slider 212 General Purpose Slider 313 General Purpose Slider 4

Ajuste LSB

20 Bank Select (fine)21 Modulation Wheel (fine)22 Breath controller (fine)24 Foot Pedal (fine)25 Portamento Time (fine)26 Data Entry (fine)27 Volume (fine)28 Balance (fine)2A Pan position (fine)2B Expression (fine)2C Effect Control 1 (fine)2D Effect Control 2 (fine)

Interruptores

40 Hold Pedal (on/off)41 Portamento (on/off)42 Sustenuto Pedal (on/off)43 Soft Pedal (on/off)44 Legato Pedal (on/off)45 Hold 2 Pedal (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 Variation47 Sound Timbre48 Sound Release Time49 Sound Attack Time4A Sound Brightness4B Sound Control 64C Sound Control 74D Sound Control 84E Sound Control 94F Sound Control 10

Efectos

5B Effects Level5C Tremulo Level5D Chorus Level5E Celeste Level5F Phaser Level

Parmetros

60 Data Button increment61 Data Button decrement62 Non-registered Parameter (fine)63 Non-registered Parameter (coarse)64 Registered Parameter (fine)65 Registered Parameter (coarse)

Modo de canal

78 All Sound Off79 All Controllers Off7A Local Keyboard (on/off)7B All Notes Off7C Omni Mode Off7D Omni Mode On7E Mono Operation7F 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)

06Ajuste brusco del parmetro (MSB)

26Ajuste fino del parametro (LSB)

60Decrementa el parmetro en una cantidad

61Incrementa el parmetro en una cantidad

62Indica un parmetro no registrado a ajustar (LSB)

63Indica un parmetro no registrado a ajustar (MSB)

64Indica un parmetro registrado a ajustar (LSB)

65Indica 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. IntroduccinGeneral 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 percusin Cromtica

00 Acoustic Grand Piano 01 Bright Acoustic. G.Piano 02 Electric Grand Piano 03 Honky-tonk Piano 04 Rhodes Piano 05 Chorused Piano 06 Harpsichord 07 Clavinet 08 Celesta 09 Glockenspiel 0A Music box 0B Vibraphone 0C Marimba 0D Xylophone 0E Tubular Bells 0F Dulcimer

rganos Guitarra

10 Hammond Organ 11 Percussive Organ 12 Rock Organ 13 Church Organ 14 Reed Organ 15 Accordion 16 Harmonica 17 Tango Accordion 18 Acoustic Guitar1 19 Acoustic Guitar2 1A Electric Guitar1 1B Electric Guitar2 1C Electric Guitar3 1D Overdrive Guitar 1E Distortion Guitar 1F Guitar Harmonics

Bajo Cuerda

20 Acoustic Bass 21 Electric Bass 1 22 Electric Bass 2 23 Fretless Bass 24 Slap Bass 1 25 Slap Bass 2 26 Synth Bass 1 27 Synth Bass 2 28 Violin 29 Viola 2A Cello 2B Contrabass 2C Tremolo Strings 2D Pizzicato StringS 2E Orchestral Harp 2F Timpani

Ensemble Metales

30 String Ensemble1 31 String Ensemble2 32 SynthStrings 1 33 SynthStrings 2 34 Choir Aahs 35 Voice Oohs 36 Synth Voice 37 Orchestra Hit 38 Trumpet 39 Trombone 3A Tubah 3B Muted Trumpet 3C French Horn 3D Brass Section 3E Synth Brass 1 3F Synth Brass 2

Lengetas Tubos

40 Soprano Sax 41 Alto Sax 42 Tenor Sax 43 Baritone Sax 44 Oboeh18 45 English Horn 46 Bassoon 47 Clarinet 48 Piccolo 49 Flute13 4A Recorder 4B Pan Flute 4C Bottle Blow 4D Shakuhachi 4E Whistle 4F Ocarina

Sintetizador solista Sintetizador Acompaamiento

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

Sintetizador Efectos Etnicos

60 FX 1 rain 61 FX 2 soundtrack 62 FX 3 crystal 63 FX 4 atmosphere 64 FX 5 brightness 65 FX 6 goblins 66 FX 7 echoes 67 FX 8 sci-fi 68 Sitar4 69 Banjo5 6A Shamisen 6B Kotoh7 6C Kalimba 6D Bagpipe 6E Fiddlet 6F Shanai0

percusin Efectos

70 Tinkle Bell 71 Agogo13 72 Steel Drums 73 Woodblock 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

35Acoustic Bass Drum59 Ride Cymbal 2

36Bass Drum 160 Hi Bongo

37Side Stick61 Low Bongo

38Acoustic Snare62 Mute Hi Conga

39 Hand Clap63 Open Hi Conga

40 Electric Snare64 Low Conga

41 Low Floor Tom65 High Timbale

42 Closed Hi-Hat66 Low Timbale

43 HighFloorTom67 High Agogo

44 Pedal Hi-Hat68 Low Agogo

45 Low Tom69Cabasa

46 Open Hi-Hat70 Maracas

47Low-Mid Tom71 Short Whistle

48Hi-Mid Tom72Long Whistle

49Crash Cymbal 173 Short Guiro

50High Tom74Long Guiro

51Ride Cymbal 175Claves

52Chinese Cymbal76Hi Wood Block

53 Ride Bell77Low Wood Block

54Tambourine78Mute Cuica

55Splash Cymbal79Open Cuica

56Cowbell80Mute Triangle

57Crash Cymbal 281 Open Triangle

58Vibraslap

3.4. Controles General MIDI

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

# Control Descripcin Comentarios

1Modulationusually hard-wired to control LFO amount, ie, vibrato),

7Main Volume

10Pan

11Expression

64Sustain

121Reset All Controllers

123All 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:

0xF0Byte de Estado (SysEX)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x09Protocolo: General MIDI Message

0x01Mensaje: General MIDI On

0xF7Fin de SysEx

General MIDI Off:

0xF0Byte de Estado (SysEX)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x09Protocolo: General MIDI Message

0x02Mensaje: General MIDI Off

0xF7Fin 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 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 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 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 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

0xF0Byte de estado (SysEx)

0x7FFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x01Protocolo: MIDI Time Code

0x01Mensaje: Full Time Code Message

[hr]Horas y Formato SMPTE

[mn]Minutos

[se]Segundos

[fr]Frames

0xF7Fin 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

0xF0Byte de estado (SysEx)

0x7FFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x01Protocolo: MIDI Time Code

0x02Mensaje: MIDI Time Code User Bits

[u1]0000aaaa

[u2]0000bbbb

[u3]0000cccc

[u4]0000dddd

[u5]0000eeee

[u6]0000ffff

[u7]0000gggg

[u8]0000hhhh

[u9]000000ii

0xF7Fin 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:

0xF0Byte de estado (SysEx)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x06Protocolo: General Information

0x01Mensaje: Requerimiento de Identidad

0xF7Fin de SysEx

Device Identity Reply Message:

0xF0Byte de estado (SysEx)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x06Protocolo: General Information

0x02Mensaje: Respuesta de Requerimiento de Identidad

[id]Identificador de Fabricante (1 o 3 Bytes)

[fl]Cdigo de Familia del dispositivo (LSB)

[fm]Cdigo de Familia del dispositivo (MSB)

[ml]Cdigo de Miembro de la familia (LSB)

[mm]Cdigo de Miembro de la familia (MSB)

[ver]Versin del Software (4 Bytes)

0xF7Fin 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:

0xF0Byte de estado (SysEx)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x08Protocolo: MIDI Tuning Standard

0x00Mensaje: Bulk Dump Request

[pp]Numero de programa que se quiere afinar

0xF7Fin de SysEx

Mensaje de volcado de tablas de afinacin:

0xF0Byte de estado (SysEx)

0x7EFabricante: Universal Non-Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x08Protocolo: MIDI Tuning Standard

0x01Mensaje: Bulk Dump

[pp]Numero de programa que se quiere afinar

[name]Nombre del programa (16 caracteres ASCII no extendidos)

[data]Datos de la tabla de afinacin

(128 notas * 3 bytes) [Tono Base]-[Parte alta]-[Parte baja]

[cc]Checksum

0xF7Fin 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:

0xF0Byte de estado (SysEx)

0x7FFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x08Protocolo: MIDI Tuning Standard

0x02Mensaje: Note Change

[pp]Numero de programa que se quiere afinar

[nn]Numero de Notas a cambiar

[data]Datos de la tabla de afinacin (+ voz a la que pertenecen)

(nn notas * 4 bytes) [Voz]-[Tono Base]-[Parte alta]-[Parte baja]

0xF7Fin 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:

0xF0Byte de estado (SysEx)

0x7FFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x03Protocolo: Notation Information

0x02Mensaje: 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

0xF7Fin de SysEx

Cambio sncrono de tipo de comps:

0xF0Byte de estado (SysEx)

0x7EFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x03Protocolo: Notation Information

0x42Mensaje: 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

0xF7Fin de SysEx

Barra de fin de compas:

0xF0Byte de estado (SysEx)

0x7FFabricante: Universal Real Time

[dd]Identificador de dispositivo destino (0x7F para Broadcast)

0x03Protocolo: Notation Information

0x01Mensaje: Bar Marker

[lb]Numero de barra (LSB)

[mb]Numero de barra (MSB)

0xF7Fin 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.PenfoldEd.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 Rumsey1990 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 [email protected].