在 iOS 上导出带有声音字体的 midi
Posted
技术标签:
【中文标题】在 iOS 上导出带有声音字体的 midi【英文标题】:export midi with sound fonts on iOS 【发布时间】:2015-09-28 20:13:47 【问题描述】:是否可以将分配有声音字体的 midi 序列导出为 .wav 文件?如果是这样,任何人都可以让我朝着正确的方向前进吗?
我目前正在使用MIKMIDI,到目前为止我还没有遇到任何这样做的示例。
【问题讨论】:
【参考方案1】:MIKMIDI 不包括在不自己实现大部分功能的情况下执行此操作的功能。也就是说,这是可能的。本质上,您需要创建自己的 Core Audio 图表,包括一个 MIDI 合成器单元。然后,在仪器单元的渲染回调中,根据使用AudioTimeStamp
计算的时间戳和传递到渲染回调的帧数,从 MIKMIDISequence 中提取事件。您可以使用MusicDeviceMIDIEvent()
将这些播放到乐器单元。
您还需要一些方法来获得合成输出。您可以通过向 AU 图形添加通用输出、向其添加渲染回调,然后在该渲染回调中,获取传入的 AudioBufferList
并将其写入文件(例如,使用 ExtAudioFileWrite()
)来做到这一点。
我确实有一个使用 MIKMIDI 的小项目,但它包含我无法公开发布的代码。我会看看我是否可以清理它,并在某个时候将其作为示例代码公开发布。 编辑:我在这里提到的项目已经清理,现在作为 MIKMIDI 的示例项目包含在内。见here。
您还可以考虑使用filing a request 提供 API 或增强功能,以便在 MIKMIDI 中更好地支持这一点。
【讨论】:
以上是关于在 iOS 上导出带有声音字体的 midi的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS 上使用 AudioKit 将声音文件作为 MIDI 音符发送