用midioutLongMsg函数举一个例子
时间: 2023-03-20 14:01:00 浏览: 86
readmsg-simple实例
midiOutLongMsg函数是Windows平台上一个用于发送MIDI消息的函数。下面是一个使用midiOutLongMsg函数发送Note On消息的示例代码:
```
#include <Windows.h>
#include <mmsystem.h>
// 声明MIDI输出设备句柄
HMIDIOUT hMidiOut;
// 发送Note On消息的函数
void sendNoteOnMsg(BYTE channel, BYTE pitch, BYTE velocity) {
BYTE msg[3] = { 0x90 | (channel & 0x0F), pitch, velocity };
midiOutLongMsg(hMidiOut, (LPMIDIHDR)&msg, sizeof(msg));
}
int main() {
// 打开MIDI输出设备
midiOutOpen(&hMidiOut, MIDI_MAPPER, NULL, NULL, CALLBACK_NULL);
// 发送Note On消息
sendNoteOnMsg(0, 60, 127);
// 关闭MIDI输出设备
midiOutClose(hMidiOut);
return 0;
}
```
在这个示例中,我们首先声明了一个MIDI输出设备的句柄`hMidiOut`,然后定义了一个名为`sendNoteOnMsg`的函数,该函数用于发送Note On消息。在`sendNoteOnMsg`函数中,我们首先构造了一个3字节的MIDI消息,包括了消息类型、音符和力度信息,并将其传递给`midiOutLongMsg`函数发送出去。最后,我们在`main`函数中打开MIDI输出设备、调用`sendNoteOnMsg`函数发送Note On消息、并关闭MIDI输出设备。
阅读全文