我可以使用TiMidity ++从头开始创建一个基本的MIDI文件,我知道足够的OpenAL来播放文件中的流媒体源。
我只是想知道是否可以在C中创建一个程序来播放MIDI文件,方法是读取SF2和MIDI文件并使用OpenAL播放声音。我需要使用其他图书馆吗?我想事先知道,因为SF2格式看起来很复杂。
答案 0 :(得分:0)
核心音频就在它的位置!
如果您在Mac上执行此操作,DLSMusicDevice
会执行您想要的操作。
如果你在iOS上,你需要手工做很多事情,但它是可管理的(也是乏味的)。如果你走这条路线,看一下示例代码'调音台主机'。
答案 1 :(得分:0)
您需要使用CoreAudio。使用连接到IOUnit的采样器创建AUGraph。查看AudioUnit框架中的头文件AUComponent.h。设置好音频图表后,您可以使用以下功能播放音符:
MusicDeviceMIDIEvent(sampler, status, note, velocity, 0);