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.
autocorrelate
, que me parece ser a nota MIDI que é emitida. Observe amidi2pitch
matriz na fórmula? Se eu estiver certo, isso significa que ainda não tenho obend
valor ou o valor real da afinação para estimar o valor de dobra e também não há como obtê-los, a menos que eu tenha um arquivo MIDI. Um caso simples de muitas variáveis e poucas equações. Como faço para estimar a dobra, o valor do tom real e ovelocity
nesse caso?MIDI é um protocolo que permite (principalmente) sintetizadores controlar ou serem controlados por outros sintetizadores ou computadores.
É um protocolo serial que permite trocar mensagens como "tecla C1 para cima" "tecla D4 para baixo" "velocidade da tecla", alteração do som "etc. Muitos controladores possuem um" pitch pitch "que é um joystick ou um botão de modulação. o jogador altere interativamente o tom da nota atual que está sendo tocada para criar manualmente vibrato ou "deslizar" continuamente de uma nota para a próxima.Como isso é feito com frequência pelos guitarristas dobrando a corda com a mão esquerda, costuma ser chamada inclinação do tom e, portanto, o nome.
A mensagem MIDI pitch bend é uma maneira de comunicar quanta mudança de tom deve ocorrer em um determinado momento. Um sintetizador (software ou hardware) que recebe uma mensagem de pitch bend deve alterar a afinação de todas as notas atuais sendo tocadas pela quantidade especificada.
A mensagem do controlador possui um argumento que varia de -8192 a 8191 e, nos arquivos MIDI padrão, deve cobrir o intervalo de -200 a 200 centavos, em que 1 cent é 1/100 do semitom, ou seja, uma proporção de 2 ^ ( 1/1200) = 1.000577789506555. Exemplo: para criar um deslocamento de tom para baixo para chegar a 93% da frequência nominal, o valor do controlador seria
ou -5146 neste caso. 0,93 é a proporção que você deseja, 12 o número de semitons por oitava, 2 o intervalo de inclinação máxima (200 cêntimos ou 2 semitons neste caso) e log2 () o logaritmo com base 2.
No entanto, na maioria dos sintetizadores, o intervalo é configurável e provavelmente não é uma boa ideia supor que todos os sintetizadores se comportam da mesma forma.
Aqui está um gráfico de conversão que pode ajudar. http://www.elvenminstrel.com/music/tuning/reference/pitchbends.shtml
fonte