用OpenAL和SF2以编程方式播放MIDI

时间:2010-11-26 15:04:33

标签: midi openal

我可以使用TiMidity ++从头开始创建一个基本的MIDI文件,我知道足够的OpenAL来播放文件中的流媒体源。

我只是想知道是否可以在C中创建一个程序来播放MIDI文件,方法是读取SF2和MIDI文件并使用OpenAL播放声音。我需要使用其他图书馆吗?我想事先知道,因为SF2格式看起来很复杂。

2 个答案:

答案 0 :(得分:0)

核心音频就在它的位置!

如果您在Mac上执行此操作,DLSMusicDevice会执行您想要的操作。

如果你在iOS上,你需要手工做很多事情,但它是可管理的(也是乏味的)。如果你走这条路线,看一下示例代码'调音台主机'。

答案 1 :(得分:0)

您需要使用CoreAudio。使用连接到IOUnit的采样器创建AUGraph。查看AudioUnit框架中的头文件AUComponent.h。设置好音频图表后,您可以使用以下功能播放音符:

MusicDeviceMIDIEvent(sampler, status, note, velocity, 0);