No centro do MIDI está uma representação da música como eventos discretos, cada um com um tom estático. É perfeito para representar a música tocada em instrumentos de teclado. Você pode converter qualquer frequência correspondente a uma nota na escala temperada em um número de nota MIDI, usando:
69 + 12 × log2fr e qu o e n c y440
Supondo que o receptor MIDI esteja calibrado para A4 = 440 Hz.
Essa representação é boa para a música de piano, mas o problema é como representar tons que não são mapeados na escala temperada (música não ocidental, sons não musicais) e como representar variações de tom durante a duração de uma nota (glissando, vibrato).
Isso é feito no MIDI usando "mensagens de afinação" que instruem o sintetizador a mudar o tom da nota atualmente tocada por um pequeno intervalo. A maioria dos sintetizadores é calibrada por padrão para +/- 2 semitons no curso do intervalo de mensagens de pitch bend (0 .. 16383). 8192 corresponde a nenhuma dobra de afinação - a afinação emitida é exatamente a do valor da nota. O mapeamento entre o valor da inclinação da afinação e a taxa de mudança de frequência é dado por:
fe m i t t e d_ N o t efn o t e _ m e s s a ge= 2p i t c h b e n d- 81924096 × 12
Assim, você pode obter a frequência de uma nota tocada por um sintetizador a partir da seguinte fórmula:
440 × 2n o t e - 6912,0+ p i t c h b e n d- 81924096 × 12
Onde note é o número da nota MIDI de 7 bits da última mensagem Note On recebida ; e pitchbend é o valor de 14 bits da última mensagem de inclinação de inclinação recebida . Um sintetizador inicia com seu registro de afinação ajustado em 8192, e esse valor também é redefinido durante a recepção da mensagem "Redefinir todos os controladores".
Vamos dar o seguinte exemplo. Você deseja expressar um trinado de flauta com a seguinte trajetória de frequência: 500 Hz, 510 Hz, 500 Hz, como mensagens MIDI.
O número da nota base é:
r o u n d( 69 + 12 × log2( 500 / 440 ) ) = 71 .
Então você envia uma mensagem "note on" com a nota # igual a 71. Isso é equivalente a um tom de:
440 × 2( 71 - 69 ) / 12= 493,88
Qual é o tom mais próximo da escala temperada. Você precisa enviar uma mensagem de inclinação para aumentar o tom por um fator de:
500493,88= 1.0124
E obtenha seus 500 Hz. O valor da inclinação do passo correspondente é:
r o u n d( 8192 + 4096 × 12 × l o g21.0124 ) = 9065
Para obter 510 Hz, o valor da inclinação do pitch seria:
r o u n d( 8192 + 4096 × 12 × l o g2510493,88) = 10469
Portanto, sua sequência de mensagens MIDI para 500, 510, 500 Hz seria:
- NOTA 71
- PITCH BEND 9065
- ...
- PITCH BEND 10469
- ...
- PITCH BEND 9065
Você pode pensar no número da nota MIDI como a parte "integral" da afinação; e o tom dobra como uma parte "fracionária" redundante do tom.