En el núcleo de MIDI hay una representación de la música como eventos de notas discretas, cada una de ellas con un tono estático. Esto es perfecto para representar la música que se toca en los instrumentos de teclado. Puede convertir cualquier frecuencia correspondiente a una nota en la escala templada en un número de nota MIDI, utilizando:
69 + 12 × log2Fr e qu e n c y440
Bajo el supuesto de que el receptor MIDI está calibrado para A4 = 440 Hz.
Esta representación está bien para la música de piano, pero el problema es cómo representar los tonos que no están asignados a la escala templada (música no occidental, sonidos no musicales), y cómo representar las variaciones de tono durante la duración de una nota (glissando, vibrato).
Esto se realiza en MIDI mediante el uso de "mensajes de inflexión de tono" que le indican al sintetizador que cambie el tono de la nota actualmente reproducida en un pequeño intervalo. La mayoría de los sintetizadores están calibrados por defecto para +/- 2 semitonos en el transcurso del rango de mensajes de pitch bend (0 .. 16383). 8192 corresponde a no doblar el tono: el tono emitido es exactamente el del valor de la nota. El mapeo entre el valor de pitch bend y la relación de desplazamiento de frecuencia viene dado por:
Fe m i t t e d_ n o t eFn o t e _ m e s s a gmi= 2p i t c h b e n d- 81924096 × 12
De este modo, puede obtener la frecuencia de una nota tocada por un sintetizador a partir de la siguiente fórmula:
440 × 2n o t e - 6912,0+ p i t c h b e n d- 81924096 × 12
Donde note es el número de nota MIDI de 7 bits del último mensaje Note On recibido ; y pitchbend es el valor de 14 bits del último mensaje Pitch bend recibido . Un sintetizador comienza con su registro de pitch bend establecido en 8192, y este valor también se restablece durante la recepción de un mensaje "Restablecer todos los controladores".
Tomemos el siguiente ejemplo. Desea expresar un trino de flauta con la siguiente trayectoria de frecuencia: 500 Hz, 510 Hz, 500 Hz, como mensajes MIDI.
El número de la nota base es:
r o u n d( 69 + 12 × log2( 500 / 440 ) ) = 71
Entonces envía un mensaje de "nota sobre" con nota # igual a 71. Esto es equivalente a un tono de:
440 × 2( 71 - 69 ) / 12= 493,88
Cuál es el tono más cercano en la escala templada. Debe enviar un mensaje de inflexión de tono para aumentar el tono por un factor de:
500493,88= 1.0124
Y obtén tus 500 Hz. El valor de pitch bend correspondiente es:
r o u n d( 8192 + 4096 × 12 × l o g21.0124 ) = 9065
Para obtener sus 510 Hz, el valor de pitch bend sería:
r o u n d( 8192 + 4096 × 12 × l o g2510493,88) = 10469
Entonces su secuencia de mensajes MIDI para 500, 510, 500 Hz sería:
- NOTA 71
- PENDCH BEND 9065
- ...
- CURVA DE ALCANCE 10469
- ...
- PENDCH BEND 9065
Puede pensar en el número de nota MIDI como la parte "integral" del tono; y el pitch bend como una parte "fraccional" redundante del pitch.