Você está aqui: C++ ::: Dicas & Truques ::: MIDI Musical Instrument Digital Interface, Mapeamento e sequenciamento MIDI, Entrada e saída MIDI |
||
Usando a função midiOutShortMsg() da API do Windows para enviar uma mensagem MIDI para o dispositivo de saída MIDIQuantidade de visualizações: 1120 vezes |
||
A função midiOutShortMsg() da API Win32 do Windows nos permite enviar uma mensagem MIDI para o dispositivo de saída MIDI. Esta função possui a seguinte assinatura:
O parâmetro HMIDIOUT é um handle para o dispositivo de saída MIDI, obtido a partir de uma chamada midiOutOpen(). O parâmetro dwMsg é do tipo DWORD, um inteiro sem sinal de 32 bits que pode armazenar valores na faixa de 0 até 4.294.967.295. Vamos ver um exemplo de como tocar uma única nota MIDI, a nota dó central no piano. Para isso precisamos entender como tal mensagem é enviada. Sabendo que um DWORD possui quatro bytes, o último byte ( o byte de ordem mais baixa) é o byte de status MIDI. Os valores de status mais comuns são "Note on", com o valor hexadecimal 90 e "Note off", com valor hexadecimal 80. O segundo byte de ordem mais baixa é o número da nota MIDI a ser tocada. O dó central no piano possui o valor decimal 48. Convertendo para hexadecimal temos 3C. Então, para tocar essa nota, já temos os dois últimos bytes com seus respectivos valores: 3C90 Vamos ao terceiro byte de order mais baixa. Este, no caso dos eventos "Note on" e "Note off", representa a velocidade (a força com a qual a nota é tocada no instrumento). Este valor pode ser na faixa de 0 a 127. Assim, para atacarmos a nota com a velocidade (ou volume) de 100, podemos fornecer o valor hexadecimal 64. Agora, o nosso valor fica: 643C90 Finalmente, para nosso alívio, o byte de mais alta ordem não é usado. Então temos: 00643C90 Agora só precisamos fornecer este valor para a função midiOutShortMsg(). Veja:
Execute esse código e você ouvirá uma linda nota dó nos auto-falantes do seu PC ou Notebook. |
||
![]() |
||
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |