在iOS上使用声音字体导出midi

时间:2015-09-28 20:13:47

标签: ios objective-c midi soundfont mikmidi

是否可以将带有soundfonts的midi序列导出为.wav文件?如果是这样,有人能让我朝着正确的方向前进吗?

我目前正在使用MIKMIDI,而且到目前为止我还没有碰到任何一个例子。

1 个答案:

答案 0 :(得分:2)

MIKMIDI不包括在没有自己实施大部分内容的情况下执行此操作的功能。那说,有可能。实质上,您需要创建自己的Core Audio图形,包括MIDI合成器单元。然后,在仪器单元的渲染回调中,根据使用AudioTimeStamp计算的时间戳和传递给渲染回调的帧数,从MIKMIDISequence中提取事件。您可以使用MusicDeviceMIDIEvent()将其播放到乐器单元。

您还需要一些方法来获取合成输出。您可以通过向AU图形添加通用输出,向其添加渲染回调,然后在该渲染回调中,将传递的AudioBufferList并将其写入文件(例如使用{{1} })。

我确实有一个小项目,它使用MIKMIDI,但它包含我无法公开发布的代码。我会看看我是否可以清理它并在某些时候将其作为示例代码公开发布。编辑:我在这里提到的项目已被清理,现在作为MIKMIDI的示例项目包含在内。请参阅here

您可能还会考虑filing a request获取API或增强功能,以便在MIKMIDI中更好地支持此功能。