Formato de datos MIDI (MIDI Data Format)
| << Página anterior 5/6 |
Los datos MIDI son transmitidos como cadenas de bits en serie (uno después del otro), agrupados de a 8 (1 byte = grupo de 8 bits), ocupándose 3 bytes para cada evento MIDI.
En algunos casos como el del bend range (deslizamiento de altura de la nota) el cual puede tomar una gran variedad de valores, es necesario ocupar dos grupos de tres bytes (ver más abajo LSB y MSB).
En la tabla de abajo se puede ver que para un evento del tipo disparo de nota (note on) los cuatro primeros bits son siempre 1001, luego siguen 4 bits que indican el número de canal (channel, representado en la tabla con nnnn); el siguiente byte comienza con cero y los otro siete bits indican el número de nota (key=kkkkkkk) pudiendo tomar para este teclado valores entre 24 y 108; el tercer byte comienza con cero y los otro siete bits indican el valor de velocidad o fuerza de toque (velocity=vvvvvvv) que puede tomar valores de entre 0 y 127.
El valor que corresponde a la nota C4 (Do central) es 74, entonces para un teclado estándard de 61 teclas la primera nota que es un C1 se representa con el valor nota 36 y la última tecla, un C6, con el valor 96.
El número total para representar una nota podría ser 1001 0001 0 0111000 0 0000011 .
Ejemplo: La tablas siguientes son relativas al teclado Kawai Spectra KC10. Cada teclado o equipo tendrá su MIDI IMPLEMENTATION CHART (Tabla de Implementacion MIDI) que indica qué datos MIDI genera y qué datos MIDI reconoce, siguiendo qué formato. De esta manera podemos saber si, por ejemplo, un teclado posee la función de Aftertouch (variación de la presión luego de atacar una tecla).
DATOS TRANSMITIDOS (TRANSMITTED DATA)
| 1 o | 2 o | 3 o | Descripción | Referencias |
1001nnnn |
0kkkkkkk |
0vvvvvvv |
Note on |
nnnn Channel n o kkkkkkk=24~108 vvvvvvv=1~127 0=off |
1011nnnn |
00000001 |
0vvvvvvv |
Modulation |
vvvvvvv=0~127 |
1011nnnn |
00000110 |
00000vvv |
Data Entry |
vvv=0~7 |
1011nnnn |
01000000 |
0vvvvvvv |
Hold 1 sw |
vvvvvvv=0 off vvvvvvv=127 on |
1011nnnn |
01100100 |
00000000 |
RPN LSB |
Bender Range |
1011nnnn |
01100101 |
00000000 |
RPN MSB |
Bender Range |
1100nnnn |
0ppppppp |
-------------- |
Program Change |
ppppppp=0~95 Single"111"~"248" ppppppp=96~111 Multi "111"~"128" |
1110nnnn |
00000000 |
0vvvvvvv |
Pitch Bender |
vvvvvvv=0~127 |
1011nnnn |
01111011 |
00000000 |
All Notes off |
|
11111110 |
-------------- |
-------------- |
Active Sensing |
|
11111010 |
-------------- |
-------------- |
Start |
|
11111100 |
-------------- |
-------------- |
Stop |
|
11111000 |
-------------- |
-------------- |
Clock |
Note on : Ataque de nota
Modulation : Profundidad de modulación de la altura (vibrato)
Data Entry : Entrada de datos
Hold 1 sw : Pedal de sostén
RPN : Registered Parameter Number
LSB : Less Significant Byte (Byte menos significativo). Si usamos 16 bits serían los 8 bits de menos valor (como las unidades en un número decimal de dos dígitos)
MSB : Most Significant Byte (Byte más significativo). Si usamos 16 bits serían los 8 bits de mayor valor (como las decenas en un número decimal de dos dígitos)
Program Change : Cambio de programa o preset (instrumento)
Pitch Bender : Deslizador de altura
All Notes off : Apagar todas las notas
Active Sensing : Sensor activo
Start : Reproducción de la máquina de ritmos
Stop : Detención de la máquina de ritmos
Clock : Reloj
DATOS RECIBIDOS RECONOCIDOS (RECOGNIZED RECEIVED DATA)
1 o |
2 o |
3 o |
Descripción |
Referencias |
1000nnnn |
0kkkkkkk |
0vvvvvvv |
Note off |
kkkkkkk=12~120 vvvvvvv=ignore |
1001nnnn |
0kkkkkkk |
0vvvvvvv |
Note on/off |
kkkkkkk=12~120 vvvvvvv=1~127 Note on vvvvvvv=0 off |
1011nnnn |
00000001 |
0vvvvvvv |
Modulation |
vvvvvvv=0~127 |
1011nnnn |
00000110 |
00000vvv |
Data Entry |
vvv=0~7 (over 8 ignored) |
1011nnnn |
00000111 |
0vvvvvvv |
Volume |
vvvvvvv=0~127 |
1011nnnn |
01000000 |
0vvvvvvv |
Hold 1 sw |
vvvvvvv=0~63 off vvvvvvv=64~127 on |
1011nnnn |
01100100 |
00000000 |
RPN LSB |
Bender Range lo |
1011nnnn |
01100101 |
00000000 |
RPN MSB |
Bender Range hi |
1100nnnn |
0ppppppp |
-------------- |
Program Change |
ppppppp=0~95 : Single "111"~248 ppppppp=96~111: Multi "111"~"128" ppppppp=112~127: ignored |
1110nnnn |
00000000 |
0vvvvvvv |
Pitch Bender |
vvvvvvv=0~127 |
1011nnnn |
01111011 |
00000000 |
All Notes off |
|
1011nnnn |
01111100 |
00000000 |
Omni off |
|
| 1011nnnn | 01111101 | 00000000 | Omni on | |
| 11111110 | -------------- | -------------- | Active Sensing |
Omni on : Activado de la función Omni que hace que cualquier dato entrante en cualquier canal MIDI sea aceptado y dispare un evento.
Omni off : Desactivado de la función Omni.
| << Página anterior 5/6 |






