Español

Chuleta de mensajes MIDI: cada tipo, byte de estado y rango

Descargar InputConfig en el Mac App StoreEsta 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

  1. Lee el primer byte del mensaje en hexadecimal.
  2. 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.
  3. Si es de F0 a FF, es un mensaje de sistema sin canal, así que búscalo en la tabla de sistema.
  4. Lee los bytes de datos que siguen, cada uno de 0 a 127, usando la tabla de canal.
  5. 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.

MensajeEstado (hex)Byte de datos 1Byte de datos 2Más
Note Off80 a 8FNúmero de nota, 0 a 127Velocity de liberación, 0 a 127números de nota
Note On90 a 9FNúmero de nota, 0 a 127Velocity, 0 a 127 (0 actúa como Note Off)velocity
Presión polifónica de teclaA0 a AFNúmero de nota, 0 a 127Presión, 0 a 127aftertouch
Control ChangeB0 a BFControlador, 0 a 119Valor, 0 a 127lista de CC
Program ChangeC0 a CFPrograma, 0 a 127Ningunoprogram change
Presión de canalD0 a DFPresión, 0 a 127Ningunoaftertouch
Pitch BendE0 a EFMitad fina (LSB), 0 a 127Mitad gruesa (MSB), 0 a 127pitch 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.

ControladorNombreQué hace
120All Sound OffSilencia todas las voces a la vez
121Reset All ControllersDevuelve los controladores a su estado predeterminado
122Local Control0 es apagado, 127 es encendido: si las teclas tocan el sonido propio del sintetizador
123All Notes OffLibera todas las notas mantenidas
124 y 125Omni Mode Off y OnSi el dispositivo escucha en un canal o en todos
126 y 127Mono Mode On y Poly Mode OnUna 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)MensajeDatosMás
F0System ExclusiveID del fabricante y luego cualquier número de bytes de datos, hasta F7SysEx
F1MIDI Time Code quarter frameUn byte: un fragmento del código de tiempo
F2Song Position PointerDos bytes: una cuenta de 14 bits de tiempos desde el inicio, donde un tiempo son 6 pulsos de reloj
F3Song SelectUn byte: qué canción o secuencia
F6Tune RequestNinguno. Pide a los sintetizadores analógicos que afinen sus osciladores
F7End of ExclusiveNinguno. Termina un mensaje SysEx
F8Timing ClockNinguno. Se envía 24 veces por negrareloj MIDI
FA, FB, FCStart, Continue, StopNingunoreloj MIDI
FEActive SensingNinguno. Opcional, al menos cada 300 ms una vez que un dispositivo empieza a enviarlo
FFResetNinguno. 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.

CCNombreMás
0 y 32Bank Select, MSB y LSBMSB y LSB
1Rueda de modulaciónlista de CC
2Controlador de soplido
4Controlador de pedal
6 y 38Data Entry, MSB y LSBNRPN y RPN
7Volumen del canal
10Pan
11Expresión
64Pedal de sustain (apagador): 0 a 63 apagado, 64 a 127 encendidopedal de sustain
65, 66, 67Portamento, Sostenuto y pedal Soft, encendido o apagado
98 y 99Número de NRPN, LSB y MSBNRPN y RPN
100 y 101Número de RPN, LSB y MSBNRPN 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.

MensajeAsignar como entradaEnviar como salida
Note On y OffSí, como botón mantenidoSí, con la velocity fijada en la fila
Control ChangeSí, como interruptor, dial o giroSí, un valor fijo o la posición de un stick o gatillo
Pitch BendSí, más y menos como un stickSí, desde un eje de stick o un botón
AftertouchSíNo
Program ChangeSí, y puede activar un preajusteSí
Start, Continue, StopSíSí
Timing ClockNoNo
System ExclusiveNoNo
NRPN y RPNNoNo, 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.

El Live Visualizer de InputConfig en su vista MIDI con el preajuste MIDI: Knob Deck, mostrando un teclado, diales y los últimos mensajes.
Figure 1. El Live Visualizer nombra cada potenciómetro por su número de CC, así que CC 7, 10, 64, 71 y 1 aquí se leen directamente en la tabla de arriba.
El editor de InputConfig con filas de la cruceta que envían cada una un Program Change, una con un Bank Select antes.
Figure 2. CC 0 y Program Change trabajando juntos. La cruceta arriba envía Bank Select y luego un Program Change con una sola pulsación.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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

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, Русский, ไทย, 繁體中文, 简体中文

Descargar InputConfig en el Mac App StoreGratis. macOS 14 o posterior. Sin cuenta, nada sale de tu Mac. Código abierto en GitHub.