Formato MIDI: Guía Técnica Completa
MIDI (Musical Instrument Digital Interface) no es un formato de audio — no contiene datos de audio. En cambio, es un protocolo y formato de archivo que almacena información de interpretación musical como eventos discretos: qué nota se tocó, cuándo, durante cuánto tiempo, con qué fuerza, en qué canal de instrumento, y con qué cambios de controlador (pitch bend, modulación, expresión). Un archivo MIDI es esencialmente una receta para una interpretación que un sintetizador, sampler o instrumento de software lee y reproduce. Estandarizado en 1983 por la MIDI Manufacturers Association (MMA), MIDI transformó la industria de la música y sigue siendo fundamental para la producción musical 40 años después.
Formato de Archivo MIDI (SMF — Standard MIDI File)
Los archivos MIDI son Standard MIDI Files (SMF). Tienen dos partes:
Chunk de Cabecera
4D 54 68 64 = "MThd" (mágico)
00 00 00 06 = Longitud del chunk: siempre 6 bytes
00 01 = Formato: 0, 1 o 2
00 XX = Número de pistas
E7 28 = División (resolución de temporización)
Tipos de formato:
- Formato 0: Pista única que contiene todos los canales. El más simple; compatible con todo el hardware.
- Formato 1: Múltiples pistas sincrónicas. Primera pista = mapa de tempo; pistas adicionales = instrumentos individuales. El más común para archivos de secuenciador multi-pista.
- Formato 2: Múltiples patrones independientes (menos común).
Tipos de Eventos MIDI
Mensajes de Voz de Canal
| Nibble de Estado | Evento | Bytes de Datos | Descripción |
|---|---|---|---|
| 0x8n | Note Off | nota (0–127), velocidad (0–127) | Liberar nota en canal n |
| 0x9n | Note On | nota, velocidad | Presionar nota. Velocidad=0 = Note Off |
| 0xBn | Control Change (CC) | controlador (0–127), valor (0–127) | Modulación, volumen, panorama, etc. |
| 0xCn | Program Change | programa (0–127) | Seleccionar instrumento/parche |
| 0xEn | Pitch Bend | LSB, MSB | Desviación de tono ±2 semitonos (por defecto) |
Números de nota: Do Central = nota 60 (convención MIDI C4). Rango 0–127 = C-1 a G9.
Números de Control Change Importantes
| CC# | Controlador | Propósito |
|---|---|---|
| 1 | Rueda de Modulación | Profundidad de vibrato, LFO |
| 7 | Volumen de Canal | Nivel general del canal |
| 10 | Panorama | Posición estéreo (0=izquierda, 64=centro, 127=derecha) |
| 64 | Pedal de Sustain | Mantener notas (0–63=apagado, 64–127=encendido) |
| 91 | Envío de Reverb | Nivel de retorno de efecto |
| 93 | Envío de Chorus | Nivel de retorno de efecto |
| 123 | Todas las Notas Apagadas | Liberar todas las notas mantenidas |
General MIDI (GM)
General MIDI estandariza las asignaciones de Program Change para que un sintetizador compatible con GM siempre responda al mismo instrumento en el mismo número de programa. El Canal 10 está reservado para batería. Piano = 0, Bajo Eléctrico = 33, Violín = 40, Trompeta = 56, Guitarra Acústica = 25. 128 instrumentos + 47 sonidos de batería.
Meta Eventos
Los meta eventos son específicos de SMF (no se transmiten sobre hardware MIDI):
| Tipo FF | Nombre | Datos |
|---|---|---|
| FF 03 | Nombre de Pista | Nombre de la pista/secuencia |
| FF 05 | Letra | Texto de letra para karaoke |
| FF 2F 00 | Fin de Pista | Requerido al final de cada pista |
| FF 51 03 | Establecer Tempo | 3 bytes: microsegundos por nota de cuarto (ej. 500000 = 120 BPM) |
| FF 58 | Compás | Numerador, denominador (potencia de 2) |
| FF 59 | Armadura | Tonalidad (0=Do, 1=Sol..., -1=Fa...), modo (0=mayor, 1=menor) |
Herramientas y Conversión de Archivos MIDI
# Reproducir MIDI con TiMidity++ sintetizador de software
timidity entrada.mid
# Reproducir con FluidSynth y una SoundFont
fluidsynth -a alsa /usr/share/sounds/sf2/FluidR3_GM.sf2 entrada.mid
# Convertir MIDI a audio con FluidSynth
fluidsynth -F salida.wav /ruta/a/soundfont.sf2 entrada.mid
ffmpeg -i salida.wav -c:a libmp3lame -q:a 2 salida.mp3
# Convertir MIDI a audio con TiMidity++
timidity entrada.mid -Ow -o salida.wav
# Analizar estructura del archivo MIDI con Python
python3 -c "import mido; mid = mido.MidiFile('entrada.mid'); print(mid)"
MIDI en la Producción Moderna
MIDI sigue siendo el lenguaje universal entre:
- DAWs: Ableton Live, Logic Pro, Pro Tools, FL Studio, Cubase, Reaper — todos usan MIDI internamente
- Sintetizadores hardware: Roland, Korg, Moog, Sequential — todos tienen MIDI IN/OUT
- Instrumentos de software: Plugins VST/AU/AAX (Kontakt, Serum, Massive, Omnisphere) responden a MIDI
- Controladores: Teclados de piano, pads (Maschine, Push), controladores de viento, kits de batería
MIDI 2.0 (publicado 2020) extiende la resolución de mensajes de 7 bits a 32 bits (4.300 millones de niveles de expresión vs. 128), añade controladores por nota, intercambio bidireccional de propiedades, y configuración de perfiles — manteniendo compatibilidad con MIDI 1.0.
Conversiones relacionadas
Conversiones frecuentes del catálogo: