我怎么能发送MIDI消息出来,从一个C ++程序,让他们从通用MIDI银行弹奏的声音?

我环顾四周,似乎没有成为一个简单的答案,我的大脑开始阅读有关CoreMIDI长手册之类的东西后融化。

我有一个简单的C ++游戏/合成器项目,以及所有我想要做的是,例如,当这场球砸到地上,触发从大钢琴银行C4。我很好与广大的程序,但整体的MIDI部分迄今完全不透明给我。

我想使用CoreMIDI,因为它看起来像它可能是最简单的事,但多平台将是一个奖金。

非常感谢您的帮助!

有帮助吗?

解决方案

另一种选择是 rtmidi

它的目的是简单和跨平台的

我已经用于实时音频类似rtaudio I / O,这是比较容易的使用。

您应该能够列出所有MIDI设备及示例代码,然后选择GM银行,并发送相应的MIDI信息(音符开/关信息),可以选择与程序变更信息钢琴后。维基百科有一个有帮助页面上手

其他提示

我已经写了一个教程,可以帮助别人谁使用对面的CoreMIDI同样的问题来了。它说明了如何读取使用从声音字体文件音效MIDI文件和输出通过AUGraph。这也解释了如何使用虚拟端点以访问实时的MIDI信息。 这里

要做到你希望你可以修改样本项目,我用下面提供什么样的:

result = MusicDeviceMIDIEvent ([AUSampler], midiStatus, note, velocity, 0);

其中AUSampler是一个指针,指向AUSampler即,在AUGraph起点。而不是从文件中读取,你可以使用下面的命令来发送一个MIDI音符进行播放。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top