Español
Chuleta de mensajes MIDI: cada tipo, byte de estado y rango
Esta app es totalmente gratis. No tienes que crear una cuenta. No hay suscripciones ni descargas complicadas, y no hay nada bloqueado. Optimizada para Apple Silicon.
Un mensaje MIDI 1.0 es un byte de estado, que dice qué es el mensaje, seguido de cero, uno o dos bytes de datos. Hay siete mensajes de canal, de Note Off en 80 hex a Pitch Bend en E0, cada uno con su canal en el último dígito, y un conjunto de mensajes de sistema de F0 a FF que no tienen canal. Las tablas de abajo cubren todos ellos, con los rangos que toma cada byte de datos, y cada fila enlaza a la página de este sitio que explica ese mensaje a fondo.
Los valores salen del resumen de mensajes MIDI 1.0 de la propia MIDI Association y de su lista de Control Change, que leí el 27 de octubre de 2026. Hago InputConfig, una app gratuita para Mac que lee y envía MIDI, así que una tabla dice cuáles de estos mensajes maneja.
Pasos
- Lee el primer byte del mensaje en hexadecimal.
- Si es de 80 a EF, el primer dígito nombra el mensaje y el segundo dígito es el canal, de 0 para el canal 1 hasta F para el canal 16.
- Si es de F0 a FF, es un mensaje de sistema sin canal, así que búscalo en la tabla de sistema.
- Lee los bytes de datos que siguen, cada uno de 0 a 127, usando la tabla de canal.
- Para un Control Change, busca el número de controlador en la tabla de CC.
Distingue un byte de estado de un byte de datos
Todo byte en MIDI 1.0 es un byte de estado o un byte de datos, y el bit superior decide cuál. En la tabla de la MIDI Association, todo byte de estado se escribe empezando por un 1 en binario y todo byte de datos por un 0.
- Bytes de estado. De 80 a FF hex, de 128 a 255. Inician un mensaje.
- Bytes de datos. De 00 a 7F hex, de 0 a 127. Por eso casi todos los valores en MIDI se detienen en 127.
- El canal. En un mensaje de canal, el segundo dígito hex es el canal, de 0 a F, que las apps muestran como canales del 1 al 16. Así, 90 es Note On en el canal 1 y 9F es Note On en el canal 16.
- Valores de 14 bits. Cuando 128 pasos no bastan, dos bytes de datos se unen: la mitad fina, el LSB, y la mitad gruesa, el MSB. Juntos van de 0 a 16383, y Pitch Bend pone su centro en 8192, 2000 hex.
Un byte de 128 o más inicia un mensaje, y un byte por debajo de 128 lleva un valor. Los canales MIDI y MSB y LSB profundizan en ambos.
Lee los mensajes de canal
Estos siete llevan la música: notas, presión, potenciómetros, cambios de sonido y la rueda de tono. La columna de estado está en hex, con el dígito bajo fijado por el canal.
| Mensaje | Estado (hex) | Byte de datos 1 | Byte de datos 2 | Más |
|---|---|---|---|---|
| Note Off | 80 a 8F | Número de nota, 0 a 127 | Velocity de liberación, 0 a 127 | números de nota |
| Note On | 90 a 9F | Número de nota, 0 a 127 | Velocity, 0 a 127 (0 actúa como Note Off) | velocity |
| Presión polifónica de tecla | A0 a AF | Número de nota, 0 a 127 | Presión, 0 a 127 | aftertouch |
| Control Change | B0 a BF | Controlador, 0 a 119 | Valor, 0 a 127 | lista de CC |
| Program Change | C0 a CF | Programa, 0 a 127 | Ninguno | program change |
| Presión de canal | D0 a DF | Presión, 0 a 127 | Ninguno | aftertouch |
| Pitch Bend | E0 a EF | Mitad fina (LSB), 0 a 127 | Mitad gruesa (MSB), 0 a 127 | pitch bend |
Un Note On con velocity 0 cuenta como Note Off, que es lo que usa la propia guía de Arduino de la MIDI Association para terminar una nota. El número de controlador de Control Change se detiene en 119 porque del 120 al 127 los ocupan los mensajes de modo de canal de más abajo. El rango del Pitch Bend en semitonos no está en el mensaje: lo decide el receptor, y la tabla MIDI señala que se puede fijar con RPN 0. Program Change y la presión de canal llevan un byte de datos, y los otros cinco llevan dos.
Conoce los mensajes de modo de canal
Los mensajes de modo de canal usan el byte de estado de Control Change, de B0 a BF, con números de controlador del 120 al 127. Cambian cómo se comporta el canal en lugar de cómo suena.
| Controlador | Nombre | Qué hace |
|---|---|---|
| 120 | All Sound Off | Silencia todas las voces a la vez |
| 121 | Reset All Controllers | Devuelve los controladores a su estado predeterminado |
| 122 | Local Control | 0 es apagado, 127 es encendido: si las teclas tocan el sonido propio del sintetizador |
| 123 | All Notes Off | Libera todas las notas mantenidas |
| 124 y 125 | Omni Mode Off y On | Si el dispositivo escucha en un canal o en todos |
| 126 y 127 | Mono Mode On y Poly Mode On | Una nota por canal, o acordes |
La lista de la MIDI Association señala que del 124 al 127 también apagan todas las notas. Un botón de pánico es sobre todo CC 123 y CC 120 enviados en los 16 canales. El pánico MIDI enumera los bytes exactos.
Lee los mensajes de sistema
Los mensajes de sistema empiezan por F y no llevan canal, así que todo dispositivo del cable puede leerlos. De F0 a F7 son mensajes comunes de sistema y de F8 a FF son de tiempo real, los únicos mensajes permitidos en medio de un mensaje SysEx.
| Estado (hex) | Mensaje | Datos | Más |
|---|---|---|---|
| F0 | System Exclusive | ID del fabricante y luego cualquier número de bytes de datos, hasta F7 | SysEx |
| F1 | MIDI Time Code quarter frame | Un byte: un fragmento del código de tiempo | |
| F2 | Song Position Pointer | Dos bytes: una cuenta de 14 bits de tiempos desde el inicio, donde un tiempo son 6 pulsos de reloj | |
| F3 | Song Select | Un byte: qué canción o secuencia | |
| F6 | Tune Request | Ninguno. Pide a los sintetizadores analógicos que afinen sus osciladores | |
| F7 | End of Exclusive | Ninguno. Termina un mensaje SysEx | |
| F8 | Timing Clock | Ninguno. Se envía 24 veces por negra | reloj MIDI |
| FA, FB, FC | Start, Continue, Stop | Ninguno | reloj MIDI |
| FE | Active Sensing | Ninguno. Opcional, al menos cada 300 ms una vez que un dispositivo empieza a enviarlo | |
| FF | Reset | Ninguno. Devuelve los receptores a su estado de encendido |
F4, F5, F9 y FD no están definidos. Clock, Start y Stop son mensajes de sistema, así que nunca llevan canal. Para los volcados SysEx y las apps que los envían, mira la página del SysEx librarian para Mac.
Busca los números de CC que vale la pena conocer
Muchos de los 120 números de Control Change quedan sin definir, pero unos pocos tienen nombre en el estándar MIDI y los siguen sintetizadores y apps. Estos salen de la lista de Control Change de la MIDI Association.
| CC | Nombre | Más |
|---|---|---|
| 0 y 32 | Bank Select, MSB y LSB | MSB y LSB |
| 1 | Rueda de modulación | lista de CC |
| 2 | Controlador de soplido | |
| 4 | Controlador de pedal | |
| 6 y 38 | Data Entry, MSB y LSB | NRPN y RPN |
| 7 | Volumen del canal | |
| 10 | Pan | |
| 11 | Expresión | |
| 64 | Pedal de sustain (apagador): 0 a 63 apagado, 64 a 127 encendido | pedal de sustain |
| 65, 66, 67 | Portamento, Sostenuto y pedal Soft, encendido o apagado | |
| 98 y 99 | Número de NRPN, LSB y MSB | NRPN y RPN |
| 100 y 101 | Número de RPN, LSB y MSB | NRPN y RPN |
Los controladores del 32 al 63 son las mitades finas, los LSB, de los controladores del 0 al 31, que es cómo Bank Select pasa a ser CC 0 más CC 32. CC 64 es un interruptor, así que cualquier valor de 64 en adelante significa que el pedal está pisado. La lista de CC de MIDI enumera todos los números.
Mira qué lee y qué envía InputConfig
InputConfig convierte el MIDI de un teclado, un controlador de pads o un DAW en teclas, clics, el volumen del Mac y más, y envía MIDI desde un mando de juego o un teclado a través de un puerto virtual llamado InputConfig. Esta es la lista sincera, mensaje por mensaje.
| Mensaje | Asignar como entrada | Enviar como salida |
|---|---|---|
| Note On y Off | Sí, como botón mantenido | Sí, con la velocity fijada en la fila |
| Control Change | Sí, como interruptor, dial o giro | Sí, un valor fijo o la posición de un stick o gatillo |
| Pitch Bend | Sí, más y menos como un stick | Sí, desde un eje de stick o un botón |
| Aftertouch | Sí | No |
| Program Change | Sí, y puede activar un preajuste | Sí |
| Start, Continue, Stop | Sí | Sí |
| Timing Clock | No | No |
| System Exclusive | No | No |
| NRPN y RPN | No | No, envía mensajes sueltos |
Dos detalles que confunden. Los botones no son sensibles a la velocity, así que cada salida MIDI Note suena con la velocity fijada en su fila, de 1 a 127, y un gatillo en CC 11 es la forma de conseguir dinámica. Y un potenciómetro en modo Switch se dispara cuando el valor pasa de la mitad, lo que convierte un pedal de sustain en un interruptor de encendido y apagado.


Si un control envía una nota, un CC, pitch bend o un Program Change, InputConfig puede asignarlo. MIDI a pulsación de tecla y la salida MIDI cubren la configuración.
Si un mensaje no es lo que esperabas
La mayoría de las sorpresas vienen de la numeración, no de un equipo roto. Sube por esta escalera, empezando por el paso más pequeño:
- Revisa la cuenta de canales. El byte dice de 0 a 15 y la app dice de 1 a 16. Un dispositivo en el canal 10 envía 99 para un Note On.
- Revisa la cuenta de programas. El mensaje lleva de 0 a 127, y muchas listas de sonidos muestran de 1 a 128, así que el sonido 1 se envía como 0.
- Busca un Note Off oculto. Un Note On con velocity 0 termina la nota, así que un registro lleno de Note On puede seguir soltando teclas.
- Decodifica los bytes en bruto. Pégalos en el decodificador de mensajes MIDI, o míralos llegar en el probador de MIDI.
Un error de uno es el fallo más común que hay en MIDI.
Profundiza en un mensaje
- Notas. Velocity, números de nota y el mapa de batería de General MIDI.
- Presión. Aftertouch de canal y polifónico.
- Controladores. El pedal de sustain, MSB y LSB, NRPN y RPN y MIDI learn.
- Sonidos. Program Change.
- Tono. Pitch Bend.
- Tiempo y seguridad. El reloj MIDI, el pánico MIDI y MIDI Thru.
- Datos. SysEx.
Cada página de aquí toma una fila de las tablas y la explica con ejemplos. Si todo esto es nuevo para ti, empieza por qué es MIDI.
La versión corta
- Primero el estado. Un byte de 80 hex o más inicia un mensaje, y los bytes que siguen son valores de 0 a 127.
- Mensajes de canal. De 80 a EF, con el canal en el último dígito.
- Mensajes de sistema. De F0 a FF, sin canal: SysEx, reloj, Start, Stop y el resto.
- Números grandes. Dos bytes de datos hacen de 0 a 16383, como en Pitch Bend.
Lee el primer dígito del byte de estado y sabrás qué tipo de mensaje es.
Preguntas
¿Cuántos tipos de mensaje MIDI hay?
MIDI 1.0 tiene siete mensajes de canal (Note Off, Note On, presión polifónica, Control Change, Program Change, presión de canal y Pitch Bend), los mensajes de modo de canal en CC 120 a 127 y los mensajes de sistema de F0 a FF.
¿Qué es un byte de estado MIDI?
El primer byte de un mensaje, de 80 a FF hex. Dice qué es el mensaje y, en los mensajes de canal, en cuál de los 16 canales está.
¿Cuál es la diferencia entre CC y NRPN?
Un CC es un mensaje con un número de controlador y un valor de 0 a 127. Un NRPN elige un parámetro con CC 99 y 98 y lo fija con Data Entry en CC 6 y 38, así que un cambio lleva tres o cuatro mensajes.
¿Qué mensajes MIDI admite InputConfig?
Asigna notas, Control Change, pitch bend, aftertouch, Program Change y Start, Continue y Stop, y envía notas, Control Change, pitch bend, Program Change y el transporte. No maneja reloj, SysEx ni NRPN.
¿Es el reloj MIDI un mensaje de canal?
No. Timing Clock, F8, es un mensaje de sistema en tiempo real sin canal, enviado 24 veces por negra.
Más en español
Guías completas, en inglés
Quién escribe. Ryleigh Newman desarrolla InputConfig y maneja su propio Mac cada día con un mando, porque sus manos no funcionan bien. Esta página está traducida del inglés. Los botones y menús principales de la app aparecen en español cuando el Mac está en español; esta página los nombra así, con el nombre en inglés entre paréntesis. El resto de la app y del sitio está en inglés.
Esta página en otros idiomas: English, Deutsch, Français, Italiano, 日本語, 한국어, Polski, Português, Русский, ไทย, 繁體中文, 简体中文
Gratis. macOS 14 o posterior. Sin cuenta, nada sale de tu Mac. Código abierto en GitHub.