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
 

Recomendados